module Seria::InfoTableOwner

Public Instance Methods

[](key) click to toggle source
# File lib/seria/info_table.rb, line 95
def [] key
  info = lookup(key)
  info.field_value if info
end
[]=(key, val) click to toggle source
# File lib/seria/info_table.rb, line 81
def []= key, val
  info = lookup(key)
  if info
    info.field_value = val
    info.field_type = val.class.name
  else
    build(
        Seria.config.fields.key => key,
        Seria.config.fields.value => val,
        Seria.config.fields.type => val.class.name
    )
  end
  val
end
lookup(key) click to toggle source
# File lib/seria/info_table.rb, line 99
def lookup key
  to_a.select{|i| i.field_name == key.to_s}.first
end
method_missing(sym, *args, &block) click to toggle source
Calls superclass method
# File lib/seria/info_table.rb, line 107
def method_missing(sym, *args, &block)
  if sym.to_s =~ /\=$/
    my_infos[sym.to_s[0..-2]] = args.first
  else
    info = Seria.config.perform_lookup_on_method_missing && my_infos.lookup(sym)
    info ? info.field_value : super
  end
end