class ActiveAdmin::Views::AttributesTable
def build(record, *attrs)
def build(record, *attrs) @record = record super(:for => @record) @table = table rows(*attrs) end
def content_for(attr)
def content_for(attr) previous = current_arbre_element.to_s value = pretty_format find_attr_value attr value.blank? && previous == current_arbre_element.to_s ? empty_value : value end
def default_id_for_prefix
def default_id_for_prefix 'attributes_table' end
def empty_value
def empty_value span I18n.t('active_admin.empty'), :class => "empty" end
def find_attr_value(attr)
def find_attr_value(attr) if attr.is_a?(Proc) attr.call(@record) elsif attr.to_s[/\A(.+)_id\z/] && @record.respond_to?($1.to_sym) @record.send($1.to_sym) else @record.send(attr.to_sym) end end
def header_content_for(attr)
def header_content_for(attr) if @record.class.respond_to?(:human_attribute_name) @record.class.human_attribute_name(attr, :default => attr.to_s.titleize) else attr.to_s.titleize end end
def row(*args, &block)
def row(*args, &block) title = args[0] options = args.extract_options! options[:class] ||= :row @table << tr(options) do th do header_content_for(title) end td do content_for(block || title) end end end
def rows(*attrs)
def rows(*attrs) attrs.each {|attr| row(attr) } end