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