Class: Genio::Parser::Types::Base
- Inherits:
-
Hash
- Object
- Hash
- Genio::Parser::Types::Base
show all
- Defined in:
- lib/genio/parser/types/base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
21
22
23
24
25
|
# File 'lib/genio/parser/types/base.rb', line 21
def initialize(options = {})
options.each do |name, value|
self[name] = value
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *values) ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'lib/genio/parser/types/base.rb', line 51
def method_missing(name, *values)
if values.size == 0
self[name]
elsif values.size == 1 and name =~ /^(.*)=$/
self[$1] = values.first
else
super
end
end
|
Class Method Details
.attr_accessor(name) ⇒ Object
62
63
64
65
66
67
68
69
|
# File 'lib/genio/parser/types/base.rb', line 62
def attr_accessor(name)
define_method name do
self[name]
end
define_method "#{name}=" do |value|
self[name] = value
end
end
|
Instance Method Details
#[](name) ⇒ Object
36
37
38
39
|
# File 'lib/genio/parser/types/base.rb', line 36
def [](name)
name = name.to_s if name.is_a?(Symbol)
super(name)
end
|
#[]=(name, value) ⇒ Object
41
42
43
44
|
# File 'lib/genio/parser/types/base.rb', line 41
def []=(name, value)
name = name.to_s if name.is_a?(Symbol)
super(name, convert(value))
end
|
#convert(value) ⇒ Object
46
47
48
49
|
# File 'lib/genio/parser/types/base.rb', line 46
def convert(value)
value = Base.new(value) if !value.is_a? Base and value.is_a? Hash
value
end
|
#merge(hash) ⇒ Object
27
28
29
|
# File 'lib/genio/parser/types/base.rb', line 27
def merge(hash)
dup.merge!(hash)
end
|
#merge!(hash) ⇒ Object
31
32
33
34
|
# File 'lib/genio/parser/types/base.rb', line 31
def merge!(hash)
hash.each{|name, value| self[name] = value }
self
end
|