Sha256: a8d790bb7cd8cd66c5751b44ab8a998643d7bd00c4f219a42c1032691e92251a

Contents?: true

Size: 955 Bytes

Versions: 3

Compression:

Stored size: 955 Bytes

Contents

# frozen_string_literal: true

module LinkedRails
  module ActiveResponse
    module Controller
      module Collections
        private

        def index_association; end

        def index_includes
          requested_resource.preview_includes
        end

        def index_iri
          RDF::URI(request.original_url)
        end

        def index_meta
          if requested_resource.is_a?(LinkedRails.collection_class) ||
              requested_resource.is_a?(LinkedRails::Sequence) ||
              index_association.nil?
            return []
          end

          RDF::List.new(
            graph: RDF::Graph.new,
            subject: index_iri,
            values: index_association.map(&:iri)
          ).triples
        end

        def index_success_options_rdf
          {
            collection: requested_resource,
            include: index_includes,
            meta: index_meta
          }
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
linked_rails-0.0.3 lib/linked_rails/active_response/controller/collections.rb
linked_rails-0.0.2 lib/linked_rails/active_response/controller/collections.rb
linked_rails-0.0.1 lib/linked_rails/active_response/controller/collections.rb