AyuntamientoMadrid/participacion

View on GitHub
app/components/admin/allowed_table_actions_component.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Admin::AllowedTableActionsComponent < ApplicationComponent
  attr_reader :record, :options
  use_helpers :can?
  delegate :action, to: :table_actions_component

  def initialize(record, **options)
    @record = record
    @options = options
  end

  private

    def actions
      (options[:actions] || [:edit, :destroy]).select { |action| can?(action, record) }
    end

    def table_actions_component
      @table_actions_component ||= Admin::TableActionsComponent.new(record, **options.merge(actions: actions))
    end
end