class ActiveAdminAddons::StateBuilder

Constants

DEFAULT_CLASS_BINDINGS

Public Instance Methods

render() click to toggle source
# File lib/activeadmin_addons/addons/state_builder.rb, line 11
def render
  raise "you need to install AASM gem first" unless defined? AASM
  raise "the #{attribute} is not an AASM state" unless state_attribute?
  context.status_tag(model.aasm(machine_name).human_state, class: status_class_for_model)
end

Private Instance Methods

class_bindings() click to toggle source
# File lib/activeadmin_addons/addons/state_builder.rb, line 33
def class_bindings
  @class_bindings ||= DEFAULT_CLASS_BINDINGS.merge(options[:states] || {})
end
machine_name() click to toggle source
# File lib/activeadmin_addons/addons/state_builder.rb, line 29
def machine_name
  @machine_name ||= options.fetch(:machine, :default)
end
state_attribute?() click to toggle source
# File lib/activeadmin_addons/addons/state_builder.rb, line 19
def state_attribute?
  model.class.respond_to?(:aasm) &&
    attribute.present? &&
    model.class.aasm(machine_name).attribute_name == attribute.to_sym
end
status_class_for_model() click to toggle source
# File lib/activeadmin_addons/addons/state_builder.rb, line 25
def status_class_for_model
  class_bindings[data.to_sym] || data
end