class DisplayFor::Element::Attribute

Public Instance Methods

content(resource) click to toggle source
# File lib/display_for/element/attribute.rb, line 10
def content(resource)
  if @block
    @block.call(resource)
  else
    value(resource)
  end
end
default_label(resource_class) click to toggle source
# File lib/display_for/element/attribute.rb, line 4
def default_label(resource_class)
  raise "#{resource_class} does not respond to human_attribute_name" unless resource_class.respond_to?(:human_attribute_name)

  resource_class.human_attribute_name(@name.to_s)
end
template() click to toggle source
# File lib/display_for/element/attribute.rb, line 39
def template
  @builder.template
end
value(resource) click to toggle source
# File lib/display_for/element/attribute.rb, line 18
def value(resource)
  raise "#{resource.class} does not respond to #{@name}" unless resource.respond_to?(@name)
  
  result = resource.send(@name) 
  
  if @options[:type]
    if @options[:type] == :html
      result = result.html_safe
    else
      result = template.send(:"number_to_#{@options[:type]}", result)
    end
  end
  
  if [Date, DateTime, Time].include?(result.class) &&  @options[:format]
    result = template.l(result, :format => @options[:format])
  end
  
  result = link_to(result, resource) if @options[:link_to]
  result.to_s
end