Module: InsaneHook::ClassMethods

Defined in:
lib/insane_hook.rb

Instance Method Summary collapse

Instance Method Details

#new(**args, &block) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/insane_hook.rb', line 31

def new(**args, &block)
	obj = self.allocate
	self.class_variable_get(:@@_command)[:required].each do |var|
		value = args.fetch(var) { raise "#{var} not provided in #{self.class}" }
		obj.instance_variable_set("@#{var}", value)
		obj.class.class_eval{attr_reader var}
	end
	self.class_variable_get(:@@_command)[:optional].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