class Initializer::Generator::Define
Attributes
parameters[R]
target_class[R]
Public Class Methods
call(target_class, parameters)
click to toggle source
# File lib/initializer/generator.rb, line 57 def self.call(target_class, parameters) parameters = parameters.map do |parameter| parameter.extend InitializerParameter end instance = new target_class, parameters instance.() end
new(target_class, parameters)
click to toggle source
# File lib/initializer/generator.rb, line 52 def initialize(target_class, parameters) @target_class = target_class @parameters = parameters end
Public Instance Methods
call()
click to toggle source
# File lib/initializer/generator.rb, line 65 def call target_class.class_eval(initializer_definition) end
initializer_definition()
click to toggle source
# File lib/initializer/generator.rb, line 82 def initializer_definition " def initialize(#{parameter_list}) #{variable_assignment_statements} end " end
parameter_list()
click to toggle source
# File lib/initializer/generator.rb, line 76 def parameter_list parameter_names = parameters.map { |p| p.name } parameter_names = parameter_names.join(", ") parameter_names end
variable_assignment_statements()
click to toggle source
# File lib/initializer/generator.rb, line 69 def variable_assignment_statements variable_assignments = parameters.inject("") do |assignments, parameter| "#{assignments}#{parameter.assignment_statement}\n" end variable_assignments end