class Dry::Initializer::Builders::Initializer

@private

Public Class Methods

[](config) click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 11
def self.[](config)
  new(config).call
end
new(config) click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 21
def initialize(config)
  @config = config
  @definitions = config.definitions.values
end

Public Instance Methods

call() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 15
def call
  lines.flatten.compact.join("\n")
end

Private Instance Methods

define_line() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 41
def define_line
  "private def __dry_initializer_initialize__(#{Signature[@config]})"
end
end_line() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 53
def end_line
  "end"
end
lines() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 26
def lines
  [
    undef_line,
    define_line,
    params_lines,
    options_lines,
    end_line
  ]
end
options_lines() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 49
def options_lines
  @definitions.select(&:option).flat_map { Attribute[_1] }.map { "  #{_1}" }
end
params_lines() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 45
def params_lines
  @definitions.reject(&:option).flat_map { Attribute[_1] }.map { "  #{_1}" }
end
undef_line() click to toggle source
# File lib/dry/initializer/builders/initializer.rb, line 36
def undef_line
  "undef :__dry_initializer_initialize__" \
    " if private_method_defined? :__dry_initializer_initialize__"
end