27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/micon/managed.rb', line 27
def inject klass, attributes
raise_without_self "Invalid argument!", Micon unless attributes.is_a? Hash
attributes.each do |name, specificator|
raise_without_self "Attribute name should be a Symbol!", Micon unless name.is_a? Symbol
if [Class, Module].include? specificator.class
specificator = specificator.name
elsif specificator.is_a? Symbol
specificator = ":#{specificator}"
else
specificator = "\"#{specificator}\""
end
script = %{\
def #{name}
::Micon[#{specificator}]
end
def #{name}= value
::Micon[#{specificator}] = value
end}
klass.class_eval script, __FILE__, __LINE__
end
end
|