class Nvlope::Model

Attributes

nvlope[R]
raw[R]

Public Class Methods

key_to_method_name(key) click to toggle source
# File lib/nvlope/model.rb, line 3
def self.key_to_method_name key
  key.downcase.gsub('-','_')
end
keys(*keys) click to toggle source
# File lib/nvlope/model.rb, line 7
def self.keys *keys
  @keys ||= Set[]
  keys = keys.flatten.map(&:to_s).to_set
  keys.each do |key|
    define_method(key_to_method_name(key)){ raw[key] }
  end
  @keys += keys
  @keys + (superclass.respond_to?(:keys) ? superclass.keys : Set[])
end
new(nvlope, raw={}) click to toggle source
# File lib/nvlope/model.rb, line 17
def initialize nvlope, raw={}
  @nvlope, @raw = nvlope, raw
end

Public Instance Methods

[](key) click to toggle source
# File lib/nvlope/model.rb, line 28
def [] key
  raw[key.to_s]
end
inspect() click to toggle source
# File lib/nvlope/model.rb, line 32
def inspect
  values = to_hash.map{|k,v| "#{k}: #{v.inspect}" }.join(', ')
  %(#<#{self.class} #{values}>)
end
to_hash() click to toggle source
# File lib/nvlope/model.rb, line 22
def to_hash
  self.class.keys.inject({}) do |hash, key|
    hash.update key => send(Nvlope::Model.key_to_method_name(key))
  end
end