Sha256: 8520616dc72648b590c5eca6914c349af76233531700abc4e366473c62e9969d

Contents?: true

Size: 840 Bytes

Versions: 43

Compression:

Stored size: 840 Bytes

Contents

module JsonapiCompliable
  module Util
    # @api private
    class Sideload
      # Determine the namespace for the sideload
      #
      # In other words, given a query like
      # /things?include=a.b
      #
      # When 'a' is sideloading 'b', b's namespace is 'b'.
      #
      # However, consider a recursive tree structure:
      #
      # /things?include=children.children
      #
      # The first occurrance of "children" will have the namespace
      # "children", the second will be "children.children" and so forth.
      #
      # This is used to match up other criteria in the query:
      #
      # ?filter[children.children][a]=b
      #
      # @api private
      def self.namespace(a, b)
        if a.to_s.split('.')[0] == b.to_s
          :"#{a}.#{b}"
        else
          b
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
jsonapi_compliable-0.10.3 lib/jsonapi_compliable/util/sideload.rb
jsonapi_compliable-0.10.2 lib/jsonapi_compliable/util/sideload.rb
jsonapi_compliable-0.10.1 lib/jsonapi_compliable/util/sideload.rb