Class: JSONAPIonify::Api::Relationship
- Inherits:
-
Object
- Object
- JSONAPIonify::Api::Relationship
- Extended by:
- Blocks, JSONAPIonify::Autoload
- Includes:
- Documentation
- Defined in:
- lib/jsonapionify/api/relationship.rb
Defined Under Namespace
Modules: Blocks, Documentation Classes: Many, One
Instance Attribute Summary collapse
-
#class_proc ⇒ Object
readonly
Returns the value of attribute class_proc.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#owner ⇒ Object
readonly
Returns the value of attribute owner.
-
#resolve ⇒ Object
readonly
Returns the value of attribute resolve.
Instance Method Summary collapse
- #includable? ⇒ Boolean
-
#initialize(owner, name, resource: nil, includable: false, resolve: proc { |name, owner| owner.send(name) }, &block) ⇒ Relationship
constructor
A new instance of Relationship.
- #resource ⇒ Object
- #resource_class ⇒ Object
Methods included from JSONAPIonify::Autoload
autoload_all, eager_load!, unloaded
Methods included from Blocks
append_class, extended, prepend_class
Methods included from Documentation
#documentation_object, #options_json
Constructor Details
#initialize(owner, name, resource: nil, includable: false, resolve: proc { |name, owner| owner.send(name) }, &block) ⇒ Relationship
Returns a new instance of Relationship.
68 69 70 71 72 73 74 75 |
# File 'lib/jsonapionify/api/relationship.rb', line 68 def initialize(owner, name, resource: nil, includable: false, resolve: proc { |name, owner| owner.send(name) }, &block) @class_proc = block || proc {} @owner = owner @name = name @includable = includable @resource = resource || name @resolve = resolve end |
Instance Attribute Details
#class_proc ⇒ Object (readonly)
Returns the value of attribute class_proc.
66 67 68 |
# File 'lib/jsonapionify/api/relationship.rb', line 66 def class_proc @class_proc end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
66 67 68 |
# File 'lib/jsonapionify/api/relationship.rb', line 66 def name @name end |
#owner ⇒ Object (readonly)
Returns the value of attribute owner.
66 67 68 |
# File 'lib/jsonapionify/api/relationship.rb', line 66 def owner @owner end |
#resolve ⇒ Object (readonly)
Returns the value of attribute resolve.
66 67 68 |
# File 'lib/jsonapionify/api/relationship.rb', line 66 def resolve @resolve end |
Instance Method Details
#includable? ⇒ Boolean
96 97 98 |
# File 'lib/jsonapionify/api/relationship.rb', line 96 def includable? !!@includable end |
#resource ⇒ Object
92 93 94 |
# File 'lib/jsonapionify/api/relationship.rb', line 92 def resource owner.api.resource(@resource) end |
#resource_class ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/jsonapionify/api/relationship.rb', line 77 def resource_class @resource_class ||= begin rel = self Class.new(resource) do define_singleton_method(:rel) do rel end rel.class_prepends.each { |prepend| class_eval &prepend } class_eval(&rel.class_proc) rel.class_appends.each { |append| class_eval &append } end end end |