Module: ControllerActionNameHelpers

Defined in:
app/helpers/controller_acttion_name_helpers.rb

Overview

Controller Action Name Helpers

Simple view helpers to determine current action and controller name in a more readable manner within Rails views.

Instance Method Summary collapse

Instance Method Details

#a_edit?(without_update = false) ⇒ Boolean Also known as: action_edit?, action_name_edit?

Note:

Often controllers do `render :edit` when there is errors in forms. So it makes sense to be true when new or edit.

Current action name is edit or update

Parameters:

  • without_update (Boolean) (defaults to: false)

    only edit action

Returns:

  • (Boolean)


121
122
123
124
125
126
127
# File 'app/helpers/controller_acttion_name_helpers.rb', line 121

def a_edit?(without_update = false)
  if without_update
    action_name == 'edit'
  else
    action?(:edit, :update)
  end
end

#a_index?Boolean Also known as: action_index?, action_name_index?

Current action name is index

Returns:

  • (Boolean)


85
86
87
# File 'app/helpers/controller_acttion_name_helpers.rb', line 85

def a_index?
  action_name == 'index'
end

#a_new?(without_create = false) ⇒ Boolean Also known as: action_new?, action_name_new?

Note:

Often controllers do `render :new` when there is errors in forms. So it makes sense to be true when new or edit.

Current action name is new or create

Parameters:

  • without_create (Boolean) (defaults to: false)

    only new action

Returns:

  • (Boolean)


105
106
107
108
109
110
111
# File 'app/helpers/controller_acttion_name_helpers.rb', line 105

def a_new?(without_create = false)
  if without_create
    action_name == 'new'
  else
    action?(:new, :create)
  end
end

#a_show?Boolean Also known as: action_show?, action_name_show?

Current action name is show

Returns:

  • (Boolean)


93
94
95
# File 'app/helpers/controller_acttion_name_helpers.rb', line 93

def a_show?
  action_name == 'show'
end

#action?(action_name) ⇒ Boolean #action?(action_name1, action_name2) ⇒ Boolean Also known as: action_name?, action_in?, action_name_in?

Current action name is in name or multiple names

Examples:

current action is index

action?(:index)

current action is index or show

action?('index', :show)

use with an array of strings

action?(*%w[index show custom])

Overloads:

  • #action?(action_name) ⇒ Boolean

    Parameters:

    • action_name (Symbol, String)

      a action name

  • #action?(action_name1, action_name2) ⇒ Boolean
    Note:

    takes unlimited amount of action names.

    Parameters:

    • action_name1 (Symbol, String)

      a action name

    • action_name2 (Symbol, String)

      a action name

Returns:

  • (Boolean)

    the action name is in action_names



43
44
45
# File 'app/helpers/controller_acttion_name_helpers.rb', line 43

def action?(*action_names)
  action_names.map(&:to_s).include?(action_name)
end

#action_controllers?(act_name, *controller_names) ⇒ Boolean

Action of name and mutliple controllers

Examples:

action is custom and controller in list

action_controllers?(:custom_action_name, :users, :members, :guests)

Parameters:

  • act_name (Symbol, String)

    the controllers name

  • controller_names (List(Symbol,String))

    the action names to match

Returns:

  • (Boolean)

    the action is name and controllers in list



79
80
81
# File 'app/helpers/controller_acttion_name_helpers.rb', line 79

def action_controllers?(act_name, *controller_names)
  action_name == act_name.to_s && controller?(*controller_names)
end

#actions_controllers?(action_names, controller_names) ⇒ Bolean

Current action and controller name in lists

Examples:

action name in array and controller name in array

action_controller?(%w[index show custom], [:users, :members, 'guests'])

Parameters:

  • action_names (Array(Symbol,String))

    the action name list

  • controller_names (Array(Symbol,String))

    the controller name list

Returns:

  • (Bolean)

    the action and controller name match lists



57
58
59
# File 'app/helpers/controller_acttion_name_helpers.rb', line 57

def actions_controllers?(action_names, controller_names)
  action?(*action_names) && controller?(*controller_names)
end

#ca_edit?(controller_name) ⇒ Boolean #ca_edit?(controller_name1, controller_name2) ⇒ Boolean Also known as: controller_names_edit?, controller_edit?

Current action name is edit or update and controller name is in list

Examples:

current action is edit or update and controller name is users

ca_edit?('users')

current action is edit or update and controller name is in list

ca_edit?(:users, :members)

Overloads:

  • #ca_edit?(controller_name) ⇒ Boolean

    Parameters:

    • controller_name (Symbol, String)

      a controller name

  • #ca_edit?(controller_name1, controller_name2) ⇒ Boolean
    Note:

    takes unlimited amount of controller names.

    Parameters:

    • controller_name1 (Symbol, String)

      a controller name

    • controller_name2 (Symbol, String)

      a controller name

Returns:

  • (Boolean)

    the controller name is in list



201
202
203
# File 'app/helpers/controller_acttion_name_helpers.rb', line 201

def ca_edit?(*controller_names)
  a_edit? && controller?(*controller_names)
end

#ca_index?(controller_name) ⇒ Boolean #ca_index?(controller_name1, controller_name2) ⇒ Boolean Also known as: controller_index?, controller_names_index?

Current action name is index and controller name is in list

Examples:

current action is index and controller name is users

ca_index?('users')

current action is index and controller name is in list

ca_index?(:users, :members)

Overloads:

  • #ca_index?(controller_name) ⇒ Boolean

    Parameters:

    • controller_name (Symbol, String)

      a controller name

  • #ca_index?(controller_name1, controller_name2) ⇒ Boolean
    Note:

    takes unlimited amount of controller names.

    Parameters:

    • controller_name1 (Symbol, String)

      a controller name

    • controller_name2 (Symbol, String)

      a controller name

Returns:

  • (Boolean)

    the controller name is in list



144
145
146
# File 'app/helpers/controller_acttion_name_helpers.rb', line 144

def ca_index?(*controller_names)
  a_index? && controller?(*controller_names)
end

#ca_new?(controller_name) ⇒ Boolean #ca_new?(controller_name1, controller_name2) ⇒ Boolean Also known as: controller_names_new?, controller_new?

Current action name is new or create and controller name is in list

Examples:

current action is new or create and controller name is users

ca_new?('users')

current action is new or create and controller name is in list

ca_new?(:users, :members)

Overloads:

  • #ca_new?(controller_name) ⇒ Boolean

    Parameters:

    • controller_name (Symbol, String)

      a controller name

  • #ca_new?(controller_name1, controller_name2) ⇒ Boolean
    Note:

    takes unlimited amount of controller names.

    Parameters:

    • controller_name1 (Symbol, String)

      a controller name

    • controller_name2 (Symbol, String)

      a controller name

Returns:

  • (Boolean)

    the controller name is in list



182
183
184
# File 'app/helpers/controller_acttion_name_helpers.rb', line 182

def ca_new?(*controller_names)
  a_new? && controller?(*controller_names)
end

#ca_show?(controller_name) ⇒ Boolean #ca_show?(controller_name1, controller_name2) ⇒ Boolean Also known as: controller_names_show?, controller_show?

Current action name is show and controller name is in list

Examples:

current action is show and controller name is users

ca_show?('users')

current action is show and controller name is in list

ca_show?(:users, :members)

Overloads:

  • #ca_show?(controller_name) ⇒ Boolean

    Parameters:

    • controller_name (Symbol, String)

      a controller name

  • #ca_show?(controller_name1, controller_name2) ⇒ Boolean
    Note:

    takes unlimited amount of controller names.

    Parameters:

    • controller_name1 (Symbol, String)

      a controller name

    • controller_name2 (Symbol, String)

      a controller name

Returns:

  • (Boolean)

    the controller name is in list



163
164
165
# File 'app/helpers/controller_acttion_name_helpers.rb', line 163

def ca_show?(*controller_names)
  a_show? && controller?(*controller_names)
end

#controller?(controller_name) ⇒ Boolean #controller?(controller_name1, controller_name2) ⇒ Boolean Also known as: controller_name?, controller_in?, controller_name_in?

Current controller name is in name or multiple names

Examples:

current controller_name is users

controller?(:users)

current controller_name is in list

controller?(:users, 'members')

use with an array of symbols

controller?(*%i[users members guests])

Overloads:

  • #controller?(controller_name) ⇒ Boolean

    Parameters:

    • controller_name (Symbol, String)

      a controller name

  • #controller?(controller_name1, controller_name2) ⇒ Boolean
    Note:

    takes unlimited amount of controller names.

    Parameters:

    • controller_name1 (Symbol, String)

      a controller name

    • controller_name2 (Symbol, String)

      a controller name

Returns:

  • (Boolean)

    the controller name is in list



21
22
23
# File 'app/helpers/controller_acttion_name_helpers.rb', line 21

def controller?(*controller_names)
  controller_names.map(&:to_s).include?(controller_name)
end

#controller_actions?(contr_name, *action_names) ⇒ Boolean

Controller of name and multiple actions

Examples:

controller users and new, create, edit or update

controller_actions?(:users, :new, :create, :edit, :update)

Parameters:

  • contr_name (Symbol, String)

    the controllers name

  • action_names (List(Symbol,String))

    the action names to match

Returns:

  • (Boolean)

    the controller is name and actions in list



68
69
70
# File 'app/helpers/controller_acttion_name_helpers.rb', line 68

def controller_actions?(contr_name, *action_names)
  controller_name == contr_name.to_s && action?(*action_names)
end