Sha256: e905c590d147ac0c37d5e26af6d0ea2c744a62c532a3f52e6cccbf43f399fb7a

Contents?: true

Size: 922 Bytes

Versions: 18

Compression:

Stored size: 922 Bytes

Contents

module Representable::XML
  module Collection
    include Representable::XML
    
    def self.included(base)
      base.class_eval do
        include Representable
        extend ClassMethods
      end
    end
    
    
    module ClassMethods
      def items(options)
        collection :_self, options
      end
    end
    
    
    def create_representation_with(doc, options, format)
      bin   = representable_bindings_for(format).first
      bin.serialize_for(self)
    end
    
    def update_properties_from(doc, options, format)
      bin   = representable_bindings_for(format).first
      value = bin.deserialize_from(doc)
      replace(value)
    end
    
    # FIXME: refactor Definition so we can simply add options in #items to existing definition.
    def representable_attrs
      attrs = super
      attrs << Definition.new(:_self, :collection => true) if attrs.size == 0
      attrs
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
representable-1.2.9 lib/representable/xml/collection.rb
representable-1.2.8 lib/representable/xml/collection.rb
representable-1.2.7 lib/representable/xml/collection.rb
representable-1.2.6 lib/representable/xml/collection.rb
representable-1.2.5 lib/representable/xml/collection.rb
representable-1.2.4 lib/representable/xml/collection.rb
representable-1.2.3 lib/representable/xml/collection.rb
representable-1.2.2 lib/representable/xml/collection.rb
representable-1.2.1 lib/representable/xml/collection.rb
representable-1.2.0 lib/representable/xml/collection.rb
representable-1.1.7 lib/representable/xml/collection.rb
representable-1.1.6 lib/representable/xml/collection.rb
representable-1.1.5 lib/representable/xml/collection.rb
representable-1.1.4 lib/representable/xml/collection.rb
representable-1.1.3 lib/representable/xml/collection.rb
representable-1.1.2 lib/representable/xml/collection.rb
representable-1.1.1 lib/representable/xml/collection.rb
representable-1.1.0 lib/representable/xml/collection.rb