Class: ActiveModelSerializers::Adapter::JsonApi::Link
- Inherits:
-
Object
- Object
- ActiveModelSerializers::Adapter::JsonApi::Link
- Includes:
- SerializationContext::UrlHelpers
- Defined in:
- lib/active_model_serializers/adapter/json_api/link.rb
Overview
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: ,
}.reject! {|_,v| v.nil? }
Instance Method Summary collapse
- #as_json ⇒ Object
- #href(value) ⇒ Object
-
#initialize(serializer, value) ⇒ Link
constructor
A new instance of Link.
- #meta(value) ⇒ Object
Methods included from SerializationContext::UrlHelpers
#default_url_options, included
Constructor Details
#initialize(serializer, value) ⇒ Link
Returns a new instance of Link.
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/active_model_serializers/adapter/json_api/link.rb', line 46 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 |
Instance Method Details
#as_json ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/active_model_serializers/adapter/json_api/link.rb', line 69 def as_json return @value if @value hash = {} hash[:href] = @href if defined?(@href) hash[:meta] = @meta if defined?(@meta) hash.any? ? hash : nil end |
#href(value) ⇒ Object
59 60 61 62 |
# File 'lib/active_model_serializers/adapter/json_api/link.rb', line 59 def href(value) @href = value nil end |
#meta(value) ⇒ Object
64 65 66 67 |
# File 'lib/active_model_serializers/adapter/json_api/link.rb', line 64 def (value) @meta = value nil end |