62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/insane_hook.rb', line 62
def new(**args)
obj = self.allocate
self.class_variable_get(::InsaneHook::ARGS_VAR)[REQUIRED_ARGS].each do |var|
value = args.fetch(var) { raise(::InsaneHook::MissingArgumentError, "#{var} not provided in #{self.class}") }
obj.instance_variable_set("@#{var}", value)
obj.class.class_eval{attr_reader var}
end
self.class_variable_get(::InsaneHook::ARGS_VAR)[OPTIONAL_ARGS].each do |var|
value = args.fetch(var, nil)
obj.instance_variable_set("@#{var}", value)
obj.class.class_eval{attr_reader var}
end
obj.send :initialize
obj
end
|