class ActiveAdmin::Views::StatusTag

Build a StatusTag

Public Instance Methods

build(status, options = {}) click to toggle source

@overload status_tag(status, options = {})

@param [String] status the status to display. One of the span classes will be an underscored version of the status.
@param [Hash] options
@option options [String] :class to override the default class
@option options [String] :id to override the default id
@option options [String] :label to override the default label
@return [ActiveAdmin::Views::StatusTag]

@example

status_tag('In Progress')
# => <span class='status_tag in_progress'>In Progress</span>

@example

status_tag('active', class: 'important', id: 'status_123', label: 'on')
# => <span class='status_tag active important' id='status_123'>on</span>
Calls superclass method
# File lib/active_admin/views/components/status_tag.rb, line 32
def build(status, options = {})
  label = options.delete(:label)
  classes = options.delete(:class)
  status = convert_to_boolean_status(status)

  if status
    content = label || if s = status.to_s and s.present?
                         I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
                       end
  end

  super(content, options)

  add_class(status_to_class(status)) if status
  add_class(classes) if classes
end
default_class_name() click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 12
def default_class_name
  "status_tag"
end
tag_name() click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 8
def tag_name
  "span"
end

Protected Instance Methods

convert_to_boolean_status(status) click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 51
def convert_to_boolean_status(status)
  case status
  when true, "true"
    "Yes"
  when false, "false"
    "No"
  when nil
    "Unset"
  else
    status
  end
end
status_to_class(status) click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 64
def status_to_class(status)
  case status
  when "Unset"
    "unset no"
  when String, Symbol
    status.to_s.titleize.gsub(/\s/, "").underscore
  else
    ""
  end
end