Class: ClassComposer::GenerateConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/class_composer/generate_config.rb

Constant Summary collapse

NOTICE =
"=begin\nThis configuration files lists all the configuration options available.\nTo change the default value, uncomment the line and change the value.\nPlease take note: Values set as `=` to a config variable are the current default values when none is assigned\n=end\n"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance:) ⇒ GenerateConfig

Returns a new instance of GenerateConfig.

Raises:

  • (ArgumentError)


14
15
16
17
18
# File 'lib/class_composer/generate_config.rb', line 14

def initialize(instance:)
  raise ArgumentError, ":instance class (#{instance}) must include ClassComposer::Generator. It does not" unless instance.include?(ClassComposer::Generator)

  @instance = instance
end

Instance Attribute Details

#instanceObject (readonly)

Returns the value of attribute instance.



5
6
7
# File 'lib/class_composer/generate_config.rb', line 5

def instance
  @instance
end

Instance Method Details

#execute(wrapping:, require_file:, space_count: 1, config_name: "config") ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/class_composer/generate_config.rb', line 20

def execute(wrapping:, require_file:, space_count: 1, config_name: "config")
  mapping = instance.composer_mapping
  generated_config = generate(mapping:, space_count:, demeters_deep:[config_name])

  stringified = ""
  stringified += "require \"#{require_file}\"\n\n" if require_file
  stringified += NOTICE
  stringified += "\n"
  stringified += "#{wrapping} do |#{config_name}|\n"
  flattened_config = generated_config.flatten(1).map { _1.join(" ") }
  flattened_config.pop if flattened_config[-1] == ""

  stringified += flattened_config.join("\n")
  stringified += "\nend"
  stringified
end