summaryrefslogtreecommitdiff
path: root/lib/generators/nifty/config
diff options
context:
space:
mode:
authorStefan Wintermeyer <stefan.wintermeyer@amooma.de>2012-12-17 12:01:45 +0100
committerStefan Wintermeyer <stefan.wintermeyer@amooma.de>2012-12-17 12:01:45 +0100
commitb80bd744ad873f6fc43018bc4bfb90677de167bd (patch)
tree072c4b0e33d442528555b82c415f5e7a1712b2b0 /lib/generators/nifty/config
parent3e706c2025ecc5523e81ad649639ef2ff75e7bac (diff)
Start of GS5.
Diffstat (limited to 'lib/generators/nifty/config')
-rw-r--r--lib/generators/nifty/config/USAGE23
-rw-r--r--lib/generators/nifty/config/config_generator.rb24
-rw-r--r--lib/generators/nifty/config/templates/config.yml8
-rw-r--r--lib/generators/nifty/config/templates/load_config.rb2
4 files changed, 57 insertions, 0 deletions
diff --git a/lib/generators/nifty/config/USAGE b/lib/generators/nifty/config/USAGE
new file mode 100644
index 0000000..f98972c
--- /dev/null
+++ b/lib/generators/nifty/config/USAGE
@@ -0,0 +1,23 @@
+Description:
+ The nifty_config generator creates YAML file in your config
+ directory and an initializer to load this config. The config has a
+ separate section for each environment. This is a great place to put
+ any config settings you don't want in your app.
+
+ The config is loaded into a constant called APP_CONFIG by default,
+ this changes depending on the name you choose to pass the generator.
+ Use this constant to access the config settings like this.
+
+ APP_CONFIG[:some_setting]
+
+
+Examples:
+ rails generate nifty:config
+
+ Config: config/app_config.yml
+ Initializer: config/initializers/load_app_config.rb
+
+ rails generate nifty:config passwords
+
+ Config: config/passwords_config.yml
+ Initializer: config/initializers/load_passwords_config.rb
diff --git a/lib/generators/nifty/config/config_generator.rb b/lib/generators/nifty/config/config_generator.rb
new file mode 100644
index 0000000..811c80e
--- /dev/null
+++ b/lib/generators/nifty/config/config_generator.rb
@@ -0,0 +1,24 @@
+require 'generators/nifty'
+
+module Nifty
+ module Generators
+ class ConfigGenerator < Base
+ argument :config_name, :type => :string, :default => 'app', :banner => 'config_name'
+
+ def create_config
+ template "load_config.rb", "config/initializers/load_#{file_name}_config.rb"
+ copy_file "config.yml", "config/#{file_name}_config.yml"
+ end
+
+ private
+
+ def file_name
+ config_name.underscore
+ end
+
+ def constant_name
+ config_name.underscore.upcase
+ end
+ end
+ end
+end
diff --git a/lib/generators/nifty/config/templates/config.yml b/lib/generators/nifty/config/templates/config.yml
new file mode 100644
index 0000000..3a26ebc
--- /dev/null
+++ b/lib/generators/nifty/config/templates/config.yml
@@ -0,0 +1,8 @@
+development:
+ domain: localhost:3000
+
+test:
+ domain: test.host
+
+production:
+ domain: example.com
diff --git a/lib/generators/nifty/config/templates/load_config.rb b/lib/generators/nifty/config/templates/load_config.rb
new file mode 100644
index 0000000..06e6a52
--- /dev/null
+++ b/lib/generators/nifty/config/templates/load_config.rb
@@ -0,0 +1,2 @@
+raw_config = File.read("#{Rails.root}/config/<%= file_name %>_config.yml")
+<%= constant_name %>_CONFIG = YAML.load(raw_config)[Rails.env].symbolize_keys