From b80bd744ad873f6fc43018bc4bfb90677de167bd Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 17 Dec 2012 12:01:45 +0100 Subject: Start of GS5. --- lib/generators/nifty/config/USAGE | 23 +++++++++++++++++++++ lib/generators/nifty/config/config_generator.rb | 24 ++++++++++++++++++++++ lib/generators/nifty/config/templates/config.yml | 8 ++++++++ .../nifty/config/templates/load_config.rb | 2 ++ 4 files changed, 57 insertions(+) create mode 100644 lib/generators/nifty/config/USAGE create mode 100644 lib/generators/nifty/config/config_generator.rb create mode 100644 lib/generators/nifty/config/templates/config.yml create mode 100644 lib/generators/nifty/config/templates/load_config.rb (limited to 'lib/generators/nifty/config') 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 -- cgit v1.2.3