class ActionAdmin::Header

Public Class Methods

new() click to toggle source
# File lib/action_admin/header.rb, line 7
def initialize
  self.actions      = {}
  self.active_links = {}
end

Public Instance Methods

action(names) click to toggle source
# File lib/action_admin/header.rb, line 12
def action(names)
  self.current_actions = Array(names)
end
action_title(name, context) click to toggle source
# File lib/action_admin/header.rb, line 28
def action_title(name, context)
  title = Hash(actions[:"#{name}"]).fetch :title, default_title(context)
  evaluate_value(title, context)
end
default_title(context) click to toggle source
# File lib/action_admin/header.rb, line 44
def default_title(context)
  singular = context.controller.try(:instance_name)
  plural   = context.controller.try(:collection_name)

  if context.action_name == 'index'
    "#{plural || context.controller_name}".strip.titleize
  else
    "#{context.action_name} #{singular}".strip.titleize
  end
end
title(value) click to toggle source
# File lib/action_admin/header.rb, line 16
def title(value)
  current_actions.each { |a| add_action_key(a, :title, value) }
end

Private Instance Methods

add_action_key(action, key, value, append=false) click to toggle source
# File lib/action_admin/header.rb, line 79
def add_action_key(action, key, value, append=false)
  self.actions[action] = {} unless self.actions.key?(action)

  if append.present?
    self.actions[action][key]  = Array(self.actions[action][key])
    self.actions[action][key] += [value]
  else
    self.actions[action][key] = value
  end
end
evaluate_value(value, context) click to toggle source
# File lib/action_admin/header.rb, line 90
def evaluate_value(value, context)
  if value.is_a?(Proc)
    context.instance_exec(&value)
  elsif value.is_a?(Symbol)
    context.try(value) || value
  else
    value
  end
end