Sha256: a2d16c29f79d6c275f3e58d2d6881efd6ed718e767ca91191a4295496a05bb45

Contents?: true

Size: 727 Bytes

Versions: 7

Compression:

Stored size: 727 Bytes

Contents

module Representable
  module Object
    class Binding < Representable::Binding
      def self.build_for(definition, *args)  # TODO: remove default arg.
        return Collection.new(definition, *args)  if definition.array?
        new(definition, *args)
      end

      def read(hash)
        fragment = hash.send(as) # :getter? no, that's for parsing!

        return FragmentNotFound if fragment.nil? and typed?
        fragment
      end

      def write(hash, fragment)
        true
      end

      def deserialize_method
        :from_object
      end

      def serialize_method
        :to_object
      end


      class Collection < self
        include Representable::Binding::Collection
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
representable-2.3.0 lib/representable/object/binding.rb
representable-2.2.3 lib/representable/object/binding.rb
representable-2.2.2 lib/representable/object/binding.rb
representable-2.2.1 lib/representable/object/binding.rb
representable-2.2.0 lib/representable/object/binding.rb
representable-2.1.8 lib/representable/object/binding.rb
representable-2.1.7 lib/representable/object/binding.rb