class CIMI::Model::Collection

Attributes

entry_name[RW]

Public Class Methods

generate(model_class) click to toggle source
# File lib/cimi/models/collection.rb, line 51
def self.generate(model_class)
  model_name = model_class.name.split("::").last
  coll_class = Class.new(CIMI::Model::Collection)
  CIMI::Model.const_set(:"#{model_name}Collection", coll_class)
  coll_class.entry_name = model_name.underscore.pluralize.to_sym
  entry_schema = model_class.schema
  coll_class.instance_eval do
    text :count
    array self.entry_name, :schema => entry_schema, :xml_name => model_name
    array :operations do
      scalar :rel, :href
    end
  end
  coll_class
end
new(values = {}) click to toggle source
# File lib/cimi/models/collection.rb, line 26
def initialize(values = {})
  if values[:entries]
    values[self.class.entry_name] = values.delete(:entries)
  end
  super(values)
end
xml_tag_name() click to toggle source
# File lib/cimi/models/collection.rb, line 47
def self.xml_tag_name
  "Collection"
end

Public Instance Methods

[](a) click to toggle source
# File lib/cimi/models/collection.rb, line 37
def [](a)
  a = entry_name if a == :entries
  super(a)
end
[]=(a, v) click to toggle source
# File lib/cimi/models/collection.rb, line 42
def []=(a, v)
  a = entry_name if a == :entries
  super(a, v)
end
entries() click to toggle source
# File lib/cimi/models/collection.rb, line 33
def entries
  self[entry_name]
end