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
52
53
54
55
56
57
|
# File 'lib/easel_helpers/helpers/table_helper.rb', line 16
def recordset(*args, &block)
options = args.
options[:table] ||= {}
= []
(options[:headers] || []).each_with_index do |, index|
head = [].flatten
opts = head.
css_classes = [] << opts.delete(:class) << case index
when 0 then "first"
when (options[:headers].size - 1) then "last"
end
<< if head.first =~ /^\<th/
th = Hpricot(head.first)
th_classes = th.at("th")["class"].join
th_classes = clean_css_classes([th_classes, css_classes])
th.at("th")["class"] = th_classes
th.to_html
else
content_tag :th,
head.first,
opts.merge(:class => clean_css_classes(css_classes))
end
end
table_classes = ["recordset", args] << options[:table].delete(:class)
css_classes = clean_css_classes(table_classes, {"last" => last_column})
html = clean_column(css_classes) do
table_options = options[:table]
table_options.merge!(:class => css_classes, :cellspacing => 0)
content_tag(:table,
content_tag(:thead, content_tag(:tr, .join)) + \
capture(&block),
table_options)
end
reset_cycle
concat(html)
end
|