Class: Bidi2pdfRails::InitializerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/bidi2pdf_rails/initializer_generator.rb

Class Method Summary collapse

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_configObject



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_optionObject



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_questionsObject



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 options[: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_configObject



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_configsObject



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