Sha256: 81de113dfe58889e41aafbc3554fd01b05938147c1eec2690d4d7ea6d576b93d

Contents?: true

Size: 941 Bytes

Versions: 28

Compression:

Stored size: 941 Bytes

Contents

# frozen_string_literal: true

require 'pundit'

module LinkedRails
  module Actions
    class Object
      include ActiveModel::Model
      include LinkedRails::Model

      attr_accessor :action
      alias parent action
      delegate :object, to: :action

      def iri
        action.object_iri
      end

      class << self
        def requested_resource(opts, user_context)
          return super unless opts[:iri].include?('?')

          parent_iri_with_query = [opts[:params][:parent_iri], opts[:iri].split('?').last].compact.join('?')

          super(opts.merge(params: opts[:params].merge(parent_iri: parent_iri_with_query)), user_context)
        end

        def requested_single_resource(params, user_context)
          return unless params.key?(:parent_iri)

          parent = parent_from_params!(params, user_context)

          new(action: parent) if parent.object.anonymous_iri?
        end
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
linked_rails-0.0.4.pre.g222bfeeca app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.gb254a2893 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g2c6c26e86 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.ge881247c3 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.gfabf7e9f5 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g8c045be3a app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g8d7195543 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.gfe77aae19 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.gc866c1806 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g3e8f5731a app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g58e27be7f app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g96885856b app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g1faca9643 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g4c8e21c9f app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g76dedd8ba app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g7123943aa app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g72bb595fe app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.gd8464437f app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.g661cde413 app/models/linked_rails/actions/object.rb
linked_rails-0.0.4.pre.ge09501794 app/models/linked_rails/actions/object.rb