Sha256: e2a196cd09bccda2ff18f96a6a8e0fcac7bd87d8d44ff4a055ca2ed56734bac2

Contents?: true

Size: 966 Bytes

Versions: 5

Compression:

Stored size: 966 Bytes

Contents

module Graphiti::ActiveGraph
  module Util
    module SerializerRelationship
      def data_proc
        sideload_ref = @sideload
        ->(_) {
          # use custom assigned sideload if it is specified via "assign_each_proc"
          # otherwise retrieve sideload using normal getter on parent object
          custom_assigned_sideload = @object.instance_variable_get("@graphiti_render_#{sideload_ref.association_name}")
          records = if custom_assigned_sideload.blank?
                      @object.public_send(sideload_ref.association_name)
                    else
                      custom_assigned_sideload[:data]
                    end

          if records
            if records.respond_to?(:to_ary)
              records.each { |r| sideload_ref.resource.decorate_record(r) }
            else
              sideload_ref.resource.decorate_record(records)
            end

            records
          end
        }
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
graphiti-activegraph-0.1.6 lib/graphiti/active_graph/util/serializer_relationship.rb
graphiti-activegraph-0.1.5 lib/graphiti/active_graph/util/serializer_relationship.rb
graphiti-activegraph-0.1.4 lib/graphiti/active_graph/util/serializer_relationship.rb
graphiti-activegraph-0.1.3 lib/graphiti/active_graph/util/serializer_relationship.rb
graphiti-activegraph-0.1.2 lib/graphiti/active_graph/util/serializer_relationship.rb