Class: Graphiti::Serializer

Inherits:
JSONAPI::Serializable::Resource
  • Object
show all
Includes:
Extensions::BooleanAttribute, Extensions::ExtraAttribute, SerializableHash, SerializableTempId
Defined in:
lib/graphiti/serializer.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SerializableHash

#to_hash

Methods included from Extensions::ExtraAttribute

included

Methods included from Extensions::BooleanAttribute

included

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_jsonapiObject



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

Returns:

  • (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