Class: Bidi2pdfRails::InitializerGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Bidi2pdfRails::InitializerGenerator
- Defined in:
- lib/generators/bidi2pdf_rails/initializer_generator.rb
Class Method Summary collapse
- .infer_option_type(default) ⇒ Object
- .normalize_group(key) ⇒ Object
- .with_group_config ⇒ Object
- .with_group_option ⇒ Object
Instance Method Summary collapse
Class Method Details
.infer_option_type(default) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 8 def self.infer_option_type(default) case default when true, false then :boolean when Numeric then :numeric when Hash then :hash when Array then :array when Proc then :string else :string end end |
.normalize_group(key) ⇒ Object
19 20 21 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 19 def self.normalize_group(key) key.to_s.sub(/(_settings|_options)$/, "") end |
.with_group_config ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 23 def self.with_group_config that = self Bidi2pdfRails::Config::CONFIG_OPTIONS.each_pair do |group_key, group_config| group_prefix = that.normalize_group(group_key) yield group_key, group_prefix, group_config end end |
.with_group_option ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 31 def self.with_group_option with_group_config do |group_key, group_prefix, group_config| group_config[:options].each do |opt| yield group_key, group_prefix, opt end end end |
Instance Method Details
#ask_questions ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 53 def ask_questions @answers = {} return if [:quiet] self.class.with_group_config do |_group_key, group_prefix, group_config| next unless group_config[:ask] if group_config[:ask] next unless yes?(group_config[:ask], :green) end group_config[:options].select { |opt| opt[:ask] }.each do |opt| option_key = "#{group_prefix}_#{opt[:name]}".to_sym next if cli_option_set?(option_key, opt) @answers[option_key] = prompt_for_option(opt) end end @answers.compact! end |
#generate_config ⇒ Object
75 76 77 78 79 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 75 def generate_config @config_path = "config/initializers/bidi2pdf_rails.rb" template "bidi2pdf_rails.rb.tt", @config_path end |
#inject_environment_configs ⇒ Object
81 82 83 84 85 86 |
# File 'lib/generators/bidi2pdf_rails/initializer_generator.rb', line 81 def inject_environment_configs ["development.rb", "test.rb", "production.rb"].each do |env| env_file = "config/environments/#{env}" patch_environment_config(env_file) end end |