ruby-avm-library/lib/avm/contact.rb

41 lines
817 B
Ruby
Raw Permalink Normal View History

2011-03-07 21:38:20 +00:00
module AVM
2011-03-23 18:10:02 +00:00
# A contributor to an image
2011-03-07 21:38:20 +00:00
class Contact
FIELD_MAP = {
:zip => :postal_code,
:state => :state_province,
:province => :state_province
}
HASH_FIELDS = [ :name, :email, :telephone, :address, :city, :state, :postal_code, :country ]
2011-03-07 21:38:20 +00:00
attr_accessor :primary
def initialize(info)
@info = Hash[info.collect { |key, value| [ FIELD_MAP[key] || key, value ] }]
@primary = false
end
def method_missing(key)
@info[FIELD_MAP[key] || key]
end
def <=>(other)
return -1 if primary?
2011-03-07 21:38:20 +00:00
self.name <=> other.name
end
2011-03-09 15:14:31 +00:00
def to_creator_list_element
%{<rdf:li>#{self.name}</rdf:li>}
end
2011-03-11 18:37:23 +00:00
def primary?
@primary
end
def to_h
Hash[HASH_FIELDS.collect { |key| [ key, send(key) ] } ]
end
2011-03-07 21:38:20 +00:00
end
end