Sha256: b00eea1cbcee87a5d9db671a3eca8c660ca50acf141fc3bcd6ada43d25f2298c

Contents?: true

Size: 1.26 KB

Versions: 4

Compression:

Stored size: 1.26 KB

Contents

module Plutonium
  module Core
    class Action
      RouteOptions = Data.define :action, :method, :options do
        def initialize(action: nil, method: :get, options: {})
          super
        end
      end

      attr_reader :name, :label, :icon, :route_options, :confirmation, :turbo_frame, :action_class

      def initialize(name, label: nil, icon: nil, action_class: nil,
        confirmation: nil,
        route_options: nil, turbo_frame: nil,
        collection_action: false, collection_record_action: false, record_action: false, bulk_action: false)
        @name = name
        @icon = icon
        @label = label || name.to_s.humanize
        @route_options = route_options || RouteOptions.new
        @turbo_frame = turbo_frame
        @action_class = action_class
        @confirmation = confirmation
        @collection_action = collection_action
        @collection_record_action = collection_record_action
        @record_action = record_action
        @bulk_action = bulk_action
      end

      def collection_action?
        @collection_action
      end

      def collection_record_action?
        @collection_record_action
      end

      def record_action?
        @record_action
      end

      def bulk_action?
        @bulk_action
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plutonium-0.6.2 lib/plutonium/core/action.rb
plutonium-0.6.1 lib/plutonium/core/action.rb
plutonium-0.6.0 lib/plutonium/core/action.rb
plutonium-0.5.0 lib/plutonium/core/action.rb