Sha256: 5d0fde4cb3d2802477d81cc90d58adde15d3710e95d63926760037627fce127a

Contents?: true

Size: 863 Bytes

Versions: 58

Compression:

Stored size: 863 Bytes

Contents

module Graphiti
  # If the object we are serializing has the instance variable
  # +@_jsonapi_temp_id+, render +temp-id+ in the {http://jsonapi.org/format/#document-resource-identifier-objects resource identifier}
  #
  # Why? Well, when the request is a nested POST, creating the main entity as
  # well as relationships, we need some way of telling the client, "hey, the
  # object you have in memory, that you just sent to the server, has been
  # persisted and now has id X".
  #
  # +@_jsonapi_temp_id+ is set within this library. You should never have to
  # reference it directly.
  module SerializableTempId
    # Common interface for jsonapi-rb extensions
    def as_jsonapi(*)
      super.tap do |hash|
        if temp_id = @object.instance_variable_get(:'@_jsonapi_temp_id')
          hash[:'temp-id'] = temp_id
        end
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
graphiti-1.0.rc.21 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.19 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.18 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.17 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.16 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.15 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.14 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.12 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.11 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.10 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.9 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.8 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.7 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.6 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.5 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.4 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.3 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.2 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.rc.1 lib/graphiti/extensions/temp_id.rb
graphiti-1.0.beta.23 lib/graphiti/extensions/temp_id.rb