8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/bootstrap_builders/attribute_rows.rb', line 8
def html
elements = []
@attributes.each do |attribute|
tr = HtmlGen::Element.new(:tr, classes: ["bb-attributes-row", "bb-attributes-row-#{attribute}"])
tr.add_ele(:th, classes: ["bb-attributes-row-title"], str: @model.class.human_attribute_name(attribute))
if column_type(attribute) == :boolean
str = @model.__send__("#{attribute}?") ? @context.t("yes") : @context.t("no")
elsif column_type(attribute) == :model
model_value = column_value(attribute)
unless model_value.nil?
link_method_name = "link_to_#{StringCases.camel_to_snake(model_value.class.name)}"
if @view.respond_to?(:link_to_model)
str = @view.link_to_model(model_value)
elsif @context.respond_to?(link_method_name)
str_html = @context.__send__(link_method_name, model_value)
else
str = model_value.name
end
end
elsif column_type(attribute) == :datetime || column_type(attribute) == :date
str = @context.l(column_value(attribute), format: :long) if column_value(attribute)
elsif column_type(attribute) == :money
str = column_value(attribute).try(:format)
else
str = column_value(attribute).to_s
end
if str
tr.add_ele(:td, classes: ["bb-attributes-row-value"], str: str)
else
tr.add_ele(:td, classes: ["bb-attributes-row-value"], str_html: str_html)
end
elements << tr.html
end
html = elements.join("\n")
html = html.html_safe if html.respond_to?(:html_safe)
html
end
|