ChaelCodes/HuntersKeepers

View on GitHub
app/helpers/application_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

# Application Helper
module ApplicationHelper
  def show_page_buttons(object)
    tag.div(class: 'field has-addons') do
      safe_join(p_wrap(page_buttons(object)))
    end
  end

  def p_wrap(control_tags)
    control_tags.map do |control_tag|
      tag.p(class: 'control') { control_tag }
    end
  end

  def page_buttons(object)
    buttons = []
    buttons << edit_button(object) if policy(object).edit?
    buttons << index_button(object)
    buttons << destroy_button(object) if policy(object).destroy?
    buttons
  end

  def destroy_button(object)
    link_to(t('.destroy'),
            object,
            method: :delete,
            class: 'button',
            data: { confirm: t('.confirm_destroy') })
  end

  def edit_button(object)
    link_to(t('.edit'), [:edit, object], class: 'button')
  end

  def index_button(object)
    link_to(t('.index'), object.class, class: 'button')
  end
end