We need to reopen Base and add some stuff to avoid circular dependencies
# File lib/cimi/models/collection.rb, line 110 def acts_as_root_entity(opts = {}) self.collection_class = Collection.generate(self) CIMI::Model.register_as_root_entity! self, opts end
# File lib/cimi/models/collection.rb, line 134 def self.all(context) find(:all, context) end
Return a collection of entities
# File lib/cimi/models/collection.rb, line 116 def list(context) entries = find(:all, context) desc = "#{self.name.split("::").last} Collection for the #{context.driver.name.capitalize} driver" id = context.send("#{collection_class.entry_name}_url") ops = [] create = "create_#{collection_class.entry_name.to_s.singularize}_url" if context.respond_to?(create) url = context.send(create) ops << { :rel => "add", :href => url } end collection_class.new(:id => id, :name => 'default', :count => entries.size, :entries => entries, :operations => ops, :description => desc) end
# File lib/cimi/models/base.rb, line 281 def filter_attributes(attr_list) attrs = attr_list.inject({}) do |result, attr| result[attr] = self.send(attr) if self.respond_to?(attr) result end self.class.new(attrs) end