Class: Graphiti::Serializer
- Inherits:
-
JSONAPI::Serializable::Resource
- Object
- JSONAPI::Serializable::Resource
- Graphiti::Serializer
- Includes:
- Extensions::BooleanAttribute, Extensions::ExtraAttribute, SerializableHash, SerializableTempId
- Defined in:
- lib/graphiti/serializer.rb
Class Method Summary collapse
Instance Method Summary collapse
- #as_jsonapi ⇒ Object
-
#method_missing(id, *args, &blk) ⇒ Object
Allow access to resource methods.
-
#requested_relationships(fields) ⇒ Object
Temporary fix until fixed upstream github.com/jsonapi-rb/jsonapi-serializable/pull/102.
- #respond_to_missing?(method_name, include_private = true) ⇒ Boolean
Methods included from SerializableHash
Methods included from Extensions::ExtraAttribute
Methods included from Extensions::BooleanAttribute
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(id, *args, &blk) ⇒ Object
Allow access to resource methods
39 40 41 42 43 44 45 |
# File 'lib/graphiti/serializer.rb', line 39 def method_missing(id, *args, &blk) if @resource.respond_to?(id, true) @resource.send(id, *args, &blk) else super end end |
Class Method Details
.inherited(klass) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/graphiti/serializer.rb', line 18 def self.inherited(klass) super klass.class_eval do extend JSONAPI::Serializable::Resource::ConditionalFields end end |
Instance Method Details
#as_jsonapi ⇒ Object
25 26 27 28 29 30 |
# File 'lib/graphiti/serializer.rb', line 25 def as_jsonapi(*) super.tap do |hash| strip_relationships!(hash) if strip_relationships? add_links!(hash) end end |
#requested_relationships(fields) ⇒ Object
Temporary fix until fixed upstream github.com/jsonapi-rb/jsonapi-serializable/pull/102
34 35 36 |
# File 'lib/graphiti/serializer.rb', line 34 def requested_relationships(fields) @_relationships end |
#respond_to_missing?(method_name, include_private = true) ⇒ Boolean
47 48 49 |
# File 'lib/graphiti/serializer.rb', line 47 def respond_to_missing?(method_name, include_private = true) @resource.respond_to?(method_name, include_private) || super end |