Class: Caprese::Adapter::JsonApi::Link
- Inherits:
-
Object
- Object
- Caprese::Adapter::JsonApi::Link
- Includes:
- ActiveModelSerializers::SerializationContext::UrlHelpers
- Defined in:
- lib/caprese/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
- #default_url_options ⇒ Object
- #href(value) ⇒ Object
-
#initialize(serializer, value) ⇒ Link
constructor
A new instance of Link.
- #meta(value) ⇒ Object
Constructor Details
#initialize(serializer, value) ⇒ Link
Returns a new instance of Link.
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/caprese/adapter/json_api/link.rb', line 44 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 @serializer = serializer @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
72 73 74 75 76 77 78 79 80 |
# File 'lib/caprese/adapter/json_api/link.rb', line 72 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 |
#default_url_options ⇒ Object
68 69 70 |
# File 'lib/caprese/adapter/json_api/link.rb', line 68 def Caprese.config. end |
#href(value) ⇒ Object
58 59 60 61 |
# File 'lib/caprese/adapter/json_api/link.rb', line 58 def href(value) @href = value nil end |
#meta(value) ⇒ Object
63 64 65 66 |
# File 'lib/caprese/adapter/json_api/link.rb', line 63 def (value) @meta = value nil end |