Class: ActiveModelSerializers::Adapter::JsonApi::Relationship

Inherits:
Object
  • Object
show all
Defined in:
lib/active_model_serializers/adapter/json_api/relationship.rb

Instance Method Summary (collapse)

Constructor Details

- (Relationship) initialize(parent_serializer, serializer, serializable_resource_options, args = {})



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/active_model_serializers/adapter/json_api/relationship.rb', line 9

def initialize(parent_serializer, serializer, serializable_resource_options, args = {})
  @object = parent_serializer.object
  @scope = parent_serializer.scope
  @association_options = args.fetch(:options, {})
  @serializable_resource_options = serializable_resource_options
  @data = data_for(serializer)
  @links = args.fetch(:links, {}).each_with_object({}) do |(key, value), hash|
    hash[key] = ActiveModelSerializers::Adapter::JsonApi::Link.new(parent_serializer, value).as_json
  end
  meta = args.fetch(:meta, nil)
  @meta = meta.respond_to?(:call) ? parent_serializer.instance_eval(&meta) : meta
end

Instance Method Details

- (Object) as_json



22
23
24
25
26
27
28
29
30
31
# File 'lib/active_model_serializers/adapter/json_api/relationship.rb', line 22

def as_json
  hash = {}
  hash[:data] = data if association_options[:include_data]
  links = self.links
  hash[:links] = links if links.any?
  meta = self.meta
  hash[:meta] = meta if meta

  hash
end