Sha256: 35f47cbb454cc84d7496e02d3217fd1b6ee4d447e4fe457aec18f377487c5636

Contents?: true

Size: 997 Bytes

Versions: 23

Compression:

Stored size: 997 Bytes

Contents

module Plutonium
  module Core
    module Actions
      class Collection
        delegate_missing_to :@collection

        def initialize(collection = {})
          @collection = collection
        end

        def permitted_for(policy)
          Collection.new(@collection.select { |name, action| policy.send_with_report :"#{action.name}?" })
        end

        def collection_actions
          Collection.new(@collection.select { |name, action| action.collection_action? })
        end

        def collection_record_actions
          Collection.new(@collection.select { |name, action| action.collection_record_action? })
        end

        def record_actions
          Collection.new(@collection.select { |name, action| action.record_action? })
        end

        def bulk_actions
          Collection.new(@collection.select { |name, action| action.bulk_action? })
        end

        def values
          super.sort_by { |value| value.position }
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
plutonium-0.14.1 lib/plutonium/core/actions/collection.rb
plutonium-0.14.0 lib/plutonium/core/actions/collection.rb
plutonium-0.13.3 lib/plutonium/core/actions/collection.rb
plutonium-0.13.2 lib/plutonium/core/actions/collection.rb
plutonium-0.13.1 lib/plutonium/core/actions/collection.rb
plutonium-0.13.0 lib/plutonium/core/actions/collection.rb
plutonium-0.12.14 lib/plutonium/core/actions/collection.rb
plutonium-0.12.13 lib/plutonium/core/actions/collection.rb
plutonium-0.12.12 lib/plutonium/core/actions/collection.rb
plutonium-0.12.11 lib/plutonium/core/actions/collection.rb
plutonium-0.12.10 lib/plutonium/core/actions/collection.rb
plutonium-0.12.9 lib/plutonium/core/actions/collection.rb
plutonium-0.12.8 lib/plutonium/core/actions/collection.rb
plutonium-0.12.7 lib/plutonium/core/actions/collection.rb
plutonium-0.12.5 lib/plutonium/core/actions/collection.rb
plutonium-0.12.4 lib/plutonium/core/actions/collection.rb
plutonium-0.12.3 lib/plutonium/core/actions/collection.rb
plutonium-0.12.2 lib/plutonium/core/actions/collection.rb
plutonium-0.12.1 lib/plutonium/core/actions/collection.rb
plutonium-0.12.0 lib/plutonium/core/actions/collection.rb