class EacRubyUtils::CommonConstructor::InstanceInitialize
Attributes
args[R]
common_constructor[R]
object[R]
Public Class Methods
new(common_constructor, args, object)
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 8 def initialize(common_constructor, args, object) @common_constructor = common_constructor @args = args @object = object end
Public Instance Methods
run()
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 14 def run validate_args_count object.run_callbacks :initialize do object_attributes_set object_after_callback end end
Private Instance Methods
arg_value(arg_name)
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 24 def arg_value(arg_name) arg_index = common_constructor.args.index(arg_name) if arg_index < args.count args[arg_index] else common_constructor.default_values[arg_index - common_constructor.args_count_min] end end
object_after_callback()
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 33 def object_after_callback return unless common_constructor.after_set_block object.instance_eval(&common_constructor.after_set_block) end
object_attributes_set()
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 39 def object_attributes_set common_constructor.args.each do |arg_name| object.send("#{arg_name}=", arg_value(arg_name)) end end
validate_args_count()
click to toggle source
# File lib/eac_ruby_utils/common_constructor/instance_initialize.rb, line 45 def validate_args_count return if common_constructor.args_count.include?(args.count) raise ArgumentError, "#{object.class}.initialize: wrong number of arguments" \ " (given #{args.count}, expected #{common_constructor.args_count})" end