Sha256: e8d19bf8b3453e1955fc526ee00f5129b2cc7fc86abdf2fbb36b5f79c919ebee
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
module ActiveModelSerializers module Adapter class JsonApi # link # definition: # oneOf # linkString # linkObject # # description: # A link **MUST** be represented as either: a string containing the link's URL or a link # object." # structure: # if href? # linkString # else # linkObject # end # # linkString # definition: # URI # # description: # A string containing the link's URL. # structure: # 'http://example.com/link-string' # # linkObject # definition: # JSON Object # # properties: # href (required) : URI # meta # structure: # { # href: 'http://example.com/link-object', # meta: meta, # }.reject! {|_,v| v.nil? } class Link include SerializationContext::UrlHelpers def initialize(serializer, value) @_routes ||= nil # handles warning # actionpack-4.0.13/lib/action_dispatch/routing/route_set.rb:417: warning: instance variable @_routes not initialized @object = serializer.object @scope = serializer.scope # Use the return value of the block unless it is nil. if value.respond_to?(:call) @value = instance_eval(&value) else @value = value end end def href(value) @href = value nil end def meta(value) @meta = value nil end def as_json return @value if @value hash = {} hash[:href] = @href if defined?(@href) hash[:meta] = @meta if defined?(@meta) hash end protected attr_reader :object, :scope end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-0.10.0 | lib/active_model_serializers/adapter/json_api/link.rb |
active_model_serializers-0.10.0.rc5 | lib/active_model_serializers/adapter/json_api/link.rb |