Sha256: e22af42bf4479aa20ae297b3441e5467d8a8fd74e5f2f3ef1e23d6fdb8028768
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
require 'roar/representer' require 'roar/representer/feature/hypermedia' require 'representable/json' module Roar module Representer module JSON def self.included(base) base.class_eval do include Representer include Representable::JSON extend ClassMethods include InstanceMethods # otherwise Representable overrides our #to_json. end end module InstanceMethods def to_hash(*args) before_serialize(*args) super end def from_json(document, options={}) document = '{}' if document.nil? or document.empty? super end # Generic entry-point for rendering. def serialize(*args) to_json(*args) end def deserialize(*args) from_json(*args) end end module ClassMethods def deserialize(*args) from_json(*args) end # TODO: move to instance method, or remove? def links_definition_options # FIXME: this doesn't belong into the generic JSON representer. [:links_array, {:from => :links, :class => Feature::Hypermedia::Hyperlink, :extend => HyperlinkRepresenter, :collection => true, :representer_exec => true, :getter => lambda { |*| links_array }, :setter => lambda { |val,*| self.links_array=(val) } }] end end require "representable/json/hash" # Represents a hyperlink in standard roar+json hash representation. module HyperlinkRepresenter include Representable::JSON::Hash end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
roar-0.11.17 | lib/roar/representer/json.rb |
roar-0.11.16 | lib/roar/representer/json.rb |