class Genio::Parser::Types::Base
Public Class Methods
attr_accessor(name)
click to toggle source
# 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
new(options = {})
click to toggle source
# File lib/genio/parser/types/base.rb, line 21 def initialize(options = {}) options.each do |name, value| self[name] = value end end
Public Instance Methods
[](name)
click to toggle source
Calls superclass method
# 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)
click to toggle source
Calls superclass method
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/genio/parser/types/base.rb, line 27 def merge(hash) dup.merge!(hash) end
merge!(hash)
click to toggle source
# File lib/genio/parser/types/base.rb, line 31 def merge!(hash) hash.each{|name, value| self[name] = value } self end
method_missing(name, *values)
click to toggle source
Calls superclass method
# 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