table_go 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +24 -0
- data/lib/table_go.rb +1 -3
- data/lib/table_go/formatter.rb +1 -1
- data/lib/table_go/renderers/csv_renderer.rb +3 -3
- data/lib/table_go/renderers/html_renderer.rb +5 -5
- data/lib/table_go/renderers/renderer_base.rb +116 -34
- data/lib/table_go/table.rb +36 -7
- data/lib/table_go/table_renderer.rb +5 -5
- data/lib/table_go/version.rb +1 -1
- data/spec/fixtures/simple_table.html.haml +6 -0
- data/spec/table_go/{helper_spec.rb → helpers_spec.rb} +21 -2
- data/spec/table_go/renderers/html_renderer_spec.rb +33 -4
- metadata +4 -5
- data/lib/table_go/columns.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 11ffd5d8824ce99aa33d4b2971ec89d32a450aff
|
4
|
-
data.tar.gz: 4522febd5dfeceb72a8db1ad82702dd6b81d7e65
|
5
2
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98d1c35fd3e8d901ed141a60dae4c72feb84288f71e40953ccb6a509c923fdb0f4ac5069446a4df37d2a183e378a5fe38682999f4e290390552e49895c890477
|
4
|
+
data.tar.gz: 245dbc606d4525f4338fefc23b6cc7a8aaa9bbdf06f76a6c9cde4f89a998e66f99170b22e637e8951a02e0091705ccd19007f5b0c4f491bdfdd41010c7b002af
|
5
|
+
SHA1:
|
6
|
+
metadata.gz: fd07ac423cdbee16255d07adae5b52d3fbb0e705
|
7
|
+
data.tar.gz: 0eb4b6402e9df3792144845b1e4373aef069936f
|
data/README.md
CHANGED
@@ -76,6 +76,30 @@ example in HAML
|
|
76
76
|
- add sorting for column
|
77
77
|
|
78
78
|
|
79
|
+
## Changelog
|
80
|
+
|
81
|
+
#### 0.2.3
|
82
|
+
|
83
|
+
- speed optimisation for haml templates
|
84
|
+
- allowing block style table options
|
85
|
+
|
86
|
+
#### 0.2.2
|
87
|
+
|
88
|
+
- small fixes
|
89
|
+
- tests
|
90
|
+
|
91
|
+
#### 0.2.1
|
92
|
+
|
93
|
+
- tests
|
94
|
+
|
95
|
+
#### 0.2.0
|
96
|
+
|
97
|
+
- allow multiline block level customization of columns
|
98
|
+
|
99
|
+
#### 0.1.9
|
100
|
+
|
101
|
+
- simple, flexible and fast html table generator
|
102
|
+
|
79
103
|
|
80
104
|
## Contributing
|
81
105
|
|
data/lib/table_go.rb
CHANGED
@@ -2,7 +2,6 @@ require 'table_go/version'
|
|
2
2
|
|
3
3
|
module TableGo
|
4
4
|
autoload :Table, 'table_go/table'
|
5
|
-
autoload :Columns, 'table_go/columns'
|
6
5
|
autoload :Column, 'table_go/column'
|
7
6
|
autoload :TableRenderer, 'table_go/table_renderer'
|
8
7
|
autoload :Renderers, 'table_go/renderers'
|
@@ -19,11 +18,10 @@ module TableGo
|
|
19
18
|
end
|
20
19
|
|
21
20
|
def self.render(collection, model_klass, renderer_klass, template, options = {}, &block)
|
22
|
-
table = Table.new(collection, model_klass, &block)
|
21
|
+
table = Table.new(collection, model_klass, options, &block)
|
23
22
|
renderer = TableRenderer.new(table)
|
24
23
|
renderer.renderer_klass = renderer_klass
|
25
24
|
renderer.template = template
|
26
|
-
renderer.apply_options(options)
|
27
25
|
renderer.render_template
|
28
26
|
end
|
29
27
|
|
data/lib/table_go/formatter.rb
CHANGED
@@ -6,9 +6,9 @@ module TableGo
|
|
6
6
|
|
7
7
|
def render_template
|
8
8
|
::FasterCSV.generate(:col_sep => ";", :row_sep => "\n", :force_quotes => true, :quote_char => '"') do |csv|
|
9
|
-
csv <<
|
10
|
-
|
11
|
-
csv <<
|
9
|
+
csv << table.columns.map { |column| label_for_column(column) }
|
10
|
+
table.collection.each do |record|
|
11
|
+
csv << table.columns.map do |column|
|
12
12
|
value = value_from_record_by_column(record, column)
|
13
13
|
apply_formatter(record, column, value)
|
14
14
|
end
|
@@ -4,8 +4,8 @@ module TableGo
|
|
4
4
|
include RendererBase
|
5
5
|
|
6
6
|
def render_template
|
7
|
-
content_tag(:table, table_html) do
|
8
|
-
concat(content_tag(:caption, title)) if title
|
7
|
+
content_tag(:table, table.table_html) do
|
8
|
+
concat(content_tag(:caption, table.title)) if table.title
|
9
9
|
concat(table_head)
|
10
10
|
concat(table_body)
|
11
11
|
end
|
@@ -14,7 +14,7 @@ module TableGo
|
|
14
14
|
def table_head
|
15
15
|
content_tag(:thead) do
|
16
16
|
content_tag(:tr) do
|
17
|
-
|
17
|
+
table.columns.each do |column|
|
18
18
|
concat(content_tag(:th, label_for_column(column), html_options_for_header(column)))
|
19
19
|
end
|
20
20
|
end
|
@@ -23,9 +23,9 @@ module TableGo
|
|
23
23
|
|
24
24
|
def table_body
|
25
25
|
content_tag(:tbody) do
|
26
|
-
|
26
|
+
table.collection.each do |record|
|
27
27
|
tr = content_tag(:tr, html_options_for_row(record)) do
|
28
|
-
|
28
|
+
table.columns.each do |column|
|
29
29
|
value = value_from_record_by_column(record, column)
|
30
30
|
concat(content_tag(:td, apply_formatter(record, column, value), html_options_for_cell(record, column, value)))
|
31
31
|
end
|
@@ -4,30 +4,21 @@ module TableGo
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
included do
|
7
|
-
attr_accessor :
|
7
|
+
attr_accessor :table, :template
|
8
8
|
delegate :content_tag, :concat, :to => :template
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
def apply_options(options)
|
13
|
-
self.title = options.delete(:title)
|
14
|
-
self.table_html = options.delete(:table_html)
|
15
|
-
self.row_html = options.delete(:row_html)
|
16
|
-
end
|
17
|
-
|
18
11
|
def render_template
|
19
12
|
raise ArgumentError.new('implement #render_template in concrete renderer')
|
20
13
|
end
|
21
14
|
|
22
|
-
|
23
|
-
|
24
15
|
private
|
25
16
|
|
26
17
|
def label_for_column(column)
|
27
18
|
column.label || begin
|
28
|
-
if column.method && 1==3# reflection =
|
19
|
+
if column.method && 1==3# reflection = table.model_klass.reflections[column.name]
|
29
20
|
reflection.klass.human_attribute_name(column.method).html_safe
|
30
|
-
# if column.method && reflection =
|
21
|
+
# if column.method && reflection = table.model_klass.reflections[column.name]
|
31
22
|
# reflection.klass.human_attribute_name(column.method).html_safe
|
32
23
|
else
|
33
24
|
column.human_attribute_name
|
@@ -45,7 +36,7 @@ module TableGo
|
|
45
36
|
|
46
37
|
def html_options_for_row(record)
|
47
38
|
{}.tap do |h|
|
48
|
-
(row_html || {}).each do |k, v|
|
39
|
+
(table.row_html || {}).each do |k, v|
|
49
40
|
h[k] = v.is_a?(Proc) ? v.call(record) : v
|
50
41
|
end
|
51
42
|
end
|
@@ -69,40 +60,131 @@ module TableGo
|
|
69
60
|
end
|
70
61
|
|
71
62
|
def apply_formatter(record, column, value)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
63
|
+
begin
|
64
|
+
case
|
65
|
+
when formatter = column.as
|
66
|
+
Formatter.apply(formatter, record, column, value)
|
67
|
+
when formatter = column.send
|
68
|
+
Formatter.apply_send(formatter, record, column, value)
|
69
|
+
when formatter = column.block
|
70
|
+
apply_formatter_for_block(formatter, record, column, value)
|
71
|
+
else
|
72
|
+
value
|
73
|
+
end
|
74
|
+
end.to_s.html_safe
|
82
75
|
end
|
83
76
|
|
84
77
|
|
85
78
|
|
86
79
|
def apply_formatter_for_block(formatter, record, column, value)
|
87
|
-
|
80
|
+
# template.capture { Formatter.apply(formatter, record, column, value )}
|
81
|
+
# template.capture_haml { Formatter.apply(formatter, record, column, value )}
|
82
|
+
# template.send(:capture_haml) { Formatter.apply(formatter, record, column, value )}
|
83
|
+
string = nil
|
88
84
|
capture_view do
|
89
|
-
|
90
|
-
end.presence ||
|
85
|
+
string = Formatter.apply(formatter, record, column, value )
|
86
|
+
end.presence || string # for compatibility to legacy haml "- t.column :ident"
|
91
87
|
end
|
92
88
|
|
93
|
-
def capture_view(&proc)
|
94
|
-
@capturer ||= template.is_haml? ? capture_haml : capture_action_view
|
95
|
-
@capturer.call(proc)
|
96
|
-
end
|
97
89
|
|
98
|
-
def
|
99
|
-
|
90
|
+
def capture_view
|
91
|
+
template.is_haml? ? capture_haml { yield } : template.capture { yield }
|
100
92
|
end
|
101
93
|
|
102
|
-
|
103
|
-
|
94
|
+
delegate :with_haml_buffer, :haml_buffer, :to => :template
|
95
|
+
|
96
|
+
# stripped down ripoff from Haml's capture_haml, needed for speed
|
97
|
+
def capture_haml(*args, &block)
|
98
|
+
# buffer = eval('if defined? _hamlout then _hamlout else nil end', block.binding) || haml_buffer
|
99
|
+
# buffer = haml_buffer
|
100
|
+
# with_haml_buffer(buffer) do
|
101
|
+
position = haml_buffer.buffer.length
|
102
|
+
|
103
|
+
haml_buffer.capture_position = position
|
104
|
+
block.call(*args)
|
105
|
+
|
106
|
+
# captured = haml_buffer.buffer.slice!(0..-1)
|
107
|
+
captured = haml_buffer.buffer.slice!(position..-1)
|
108
|
+
# return captured if haml_buffer.options[:ugly]
|
109
|
+
|
110
|
+
# debugger
|
111
|
+
# Note that the "reject" is needed for rbx 1.2.4, which includes empty
|
112
|
+
# strings in the returned array when splitting by /^/.
|
113
|
+
# captured = captured.split(/^/).reject {|x| x == ""}
|
114
|
+
|
115
|
+
# min_tabs = nil
|
116
|
+
# captured.each do |line|
|
117
|
+
# tabs = line.index(/[^ ]/) || line.length
|
118
|
+
# min_tabs ||= tabs
|
119
|
+
# min_tabs = min_tabs > tabs ? tabs : min_tabs
|
120
|
+
# end
|
121
|
+
|
122
|
+
# captured.map do |line|
|
123
|
+
# line.slice(min_tabs, line.length)
|
124
|
+
# end.join
|
125
|
+
# end
|
126
|
+
ensure
|
127
|
+
haml_buffer.capture_position = nil
|
104
128
|
end
|
105
129
|
|
130
|
+
|
131
|
+
# def capture_haml(*args, &block)
|
132
|
+
# # buffer = eval('if defined? _hamlout then _hamlout else nil end', block.binding) || haml_buffer
|
133
|
+
# # buffer = haml_buffer
|
134
|
+
# # with_haml_buffer(buffer) do
|
135
|
+
# position = haml_buffer.buffer.length
|
136
|
+
|
137
|
+
# haml_buffer.capture_position = position
|
138
|
+
# block.call(*args)
|
139
|
+
|
140
|
+
# captured = haml_buffer.buffer.slice!(position..-1)
|
141
|
+
# # return captured if haml_buffer.options[:ugly]
|
142
|
+
|
143
|
+
# # debugger
|
144
|
+
# # Note that the "reject" is needed for rbx 1.2.4, which includes empty
|
145
|
+
# # strings in the returned array when splitting by /^/.
|
146
|
+
# captured = captured.split(/^/).reject {|x| x == ""}
|
147
|
+
|
148
|
+
# # min_tabs = nil
|
149
|
+
# # captured.each do |line|
|
150
|
+
# # tabs = line.index(/[^ ]/) || line.length
|
151
|
+
# # min_tabs ||= tabs
|
152
|
+
# # min_tabs = min_tabs > tabs ? tabs : min_tabs
|
153
|
+
# # end
|
154
|
+
|
155
|
+
# # captured.map do |line|
|
156
|
+
# # line.slice(min_tabs, line.length)
|
157
|
+
# # end.join
|
158
|
+
# # end
|
159
|
+
# ensure
|
160
|
+
# haml_buffer.capture_position = nil
|
161
|
+
# end
|
162
|
+
|
163
|
+
# def capture_view
|
164
|
+
# template.is_haml? ? template.capture_haml { yield } : template.capture { yield }
|
165
|
+
# end
|
166
|
+
|
167
|
+
# def capture_view
|
168
|
+
# template.send(capture_method) { yield }
|
169
|
+
# end
|
170
|
+
|
171
|
+
# def capture_method
|
172
|
+
# @capture_method ||= template.is_haml? ? :capture_haml : :capture
|
173
|
+
# end
|
174
|
+
|
175
|
+
# def capture_view(&proc)
|
176
|
+
# @capturer ||= template.is_haml? ? capture_haml : capture_action_view
|
177
|
+
# @capturer.call(proc)
|
178
|
+
# end
|
179
|
+
|
180
|
+
# def capture_haml(&proc)
|
181
|
+
# lambda { |c| template.capture_haml { c.call } }
|
182
|
+
# end
|
183
|
+
|
184
|
+
# def capture_action_view
|
185
|
+
# lambda { |c| template.capture { c.call } }
|
186
|
+
# end
|
187
|
+
|
106
188
|
end
|
107
189
|
end
|
108
190
|
end
|
data/lib/table_go/table.rb
CHANGED
@@ -1,21 +1,24 @@
|
|
1
1
|
module TableGo
|
2
2
|
class Table
|
3
3
|
|
4
|
-
attr_accessor :collection, :model_klass
|
4
|
+
attr_accessor :collection, :model_klass
|
5
|
+
attr_accessor :columns
|
5
6
|
|
6
|
-
def initialize(collection, model_klass, &block)
|
7
|
+
def initialize(collection, model_klass, options, &block)
|
7
8
|
@collection = collection
|
8
9
|
@model_klass = model_klass
|
9
|
-
@columns =
|
10
|
-
|
10
|
+
@columns = []
|
11
|
+
apply_options!(options)
|
12
|
+
evaluate_dsl!(block)
|
11
13
|
end
|
12
14
|
|
13
|
-
def evaluate_dsl(block)
|
15
|
+
def evaluate_dsl!(block)
|
14
16
|
if block
|
15
|
-
block
|
17
|
+
# instance_eval(&block)
|
18
|
+
block.call(self)
|
16
19
|
else
|
17
20
|
attribute_names_from_model_klass.each do |column_name|
|
18
|
-
|
21
|
+
column(column_name)
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
@@ -24,9 +27,35 @@ module TableGo
|
|
24
27
|
# @model_klass_reflection_keys ||= model_klass.reflections.keys
|
25
28
|
# end
|
26
29
|
|
30
|
+
|
27
31
|
def attribute_names_from_model_klass
|
28
32
|
model_klass.respond_to?(:column_names) ? model_klass.column_names : []
|
29
33
|
end
|
30
34
|
|
35
|
+
def apply_options!(options)
|
36
|
+
options.each { |k, v| send(k, v) }
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
def column(name, options = {}, &block)
|
42
|
+
@columns << Column.new(self, name, options, &block)
|
43
|
+
end
|
44
|
+
|
45
|
+
def title(title = nil)
|
46
|
+
@title = title if title
|
47
|
+
@title
|
48
|
+
end
|
49
|
+
|
50
|
+
def table_html(table_html = nil)
|
51
|
+
@table_html = table_html if table_html
|
52
|
+
@table_html
|
53
|
+
end
|
54
|
+
|
55
|
+
def row_html(row_html = nil)
|
56
|
+
@row_html = row_html if row_html
|
57
|
+
@row_html
|
58
|
+
end
|
59
|
+
|
31
60
|
end
|
32
61
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module TableGo
|
2
2
|
class TableRenderer
|
3
3
|
attr_accessor :renderer_klass, :template
|
4
|
-
delegate :
|
4
|
+
delegate :render_template, :to => :renderer
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@
|
6
|
+
def initialize(table)
|
7
|
+
@table = table
|
8
8
|
end
|
9
9
|
|
10
10
|
def renderer
|
11
11
|
@renderer ||= renderer_klass.new.tap do |r|
|
12
|
-
r.template
|
13
|
-
r.
|
12
|
+
r.template = template
|
13
|
+
r.table = @table
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
data/lib/table_go/version.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
%p Suppe
|
1
2
|
= table_go_for(articles, Article) do |t|
|
2
3
|
- t.column :ident
|
3
4
|
- t.column :custom_single_cell do |value, record, column|
|
@@ -7,3 +8,8 @@
|
|
7
8
|
= " Title: %s" % record.title
|
8
9
|
- t.column :custom_single_cell_with_backwards_compatibility do |value, record, column|
|
9
10
|
- "Ident: %s" % record.ident
|
11
|
+
- t.column :field_with_html_markup, :label => 'field with_html_markup' do |value, record, column|
|
12
|
+
= link_to('click me', 'http://nowhere.com')
|
13
|
+
%br
|
14
|
+
= link_to('and here', 'http://otherwhere.com')
|
15
|
+
%p Pampe
|
@@ -23,9 +23,9 @@ describe TableGo::Helpers do
|
|
23
23
|
Haml::Engine.new(read_file_from_fixtures_path('simple_table.html.haml')).render(template, :articles => articles)
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
26
|
it "it should render in haml" do
|
28
|
-
subject.cleanup_html.should
|
27
|
+
subject.cleanup_html.should eql %Q(
|
28
|
+
<p>Suppe</p>
|
29
29
|
<table>
|
30
30
|
<thead>
|
31
31
|
<tr>
|
@@ -33,6 +33,7 @@ describe TableGo::Helpers do
|
|
33
33
|
<th>Custom single cell</th>
|
34
34
|
<th>Custom multiline cell</th>
|
35
35
|
<th>Custom single cell with backwards compatibility</th>
|
36
|
+
<th>field with_html_markup</th>
|
36
37
|
</tr></thead>
|
37
38
|
<tbody>
|
38
39
|
<tr>
|
@@ -40,20 +41,38 @@ describe TableGo::Helpers do
|
|
40
41
|
<td>Ident: 1 - Title: iPutz</td>
|
41
42
|
<td>Ident: 1 - Title: iPutz</td>
|
42
43
|
<td>Ident: 1</td>
|
44
|
+
<td><a href="http://nowhere.com">click me</a><br /><a href="http://otherwhere.com">and here</a></td>
|
43
45
|
</tr>
|
44
46
|
<tr>
|
45
47
|
<td>2</td>
|
46
48
|
<td>Ident: 2 - Title: Nutzbook</td>
|
47
49
|
<td>Ident: 2 - Title: Nutzbook</td>
|
48
50
|
<td>Ident: 2</td>
|
51
|
+
<td><a href="http://nowhere.com">click me</a><br /><a href="http://otherwhere.com">and here</a></td>
|
49
52
|
</tr>
|
50
53
|
</tbody>
|
51
54
|
</table>
|
55
|
+
<p>Pampe</p>
|
52
56
|
).cleanup_html
|
53
57
|
end
|
54
58
|
|
55
59
|
|
56
60
|
end
|
57
61
|
|
62
|
+
# context 'speedtest' do
|
63
|
+
|
64
|
+
# let(:more_articles) { 1000.times.map { articles }.flatten }
|
65
|
+
|
66
|
+
|
67
|
+
# it 'should run fast' do
|
68
|
+
# puts Benchmark.measure {
|
69
|
+
# 2.times do
|
70
|
+
# Haml::Engine.new(read_file_from_fixtures_path('simple_table.html.haml')).render(template, :articles => more_articles)
|
71
|
+
# end
|
72
|
+
# }
|
73
|
+
# end
|
74
|
+
|
75
|
+
# end
|
76
|
+
|
58
77
|
end
|
59
78
|
|
@@ -20,7 +20,7 @@ describe TableGo::Renderers::HtmlRenderer do
|
|
20
20
|
subject { TableGo.render_html(articles, Article, template, {}) }
|
21
21
|
|
22
22
|
it 'should render a simple automatic html table' do
|
23
|
-
subject.cleanup_html.should
|
23
|
+
subject.cleanup_html.should eql %Q(
|
24
24
|
<table>
|
25
25
|
<thead>
|
26
26
|
<tr>
|
@@ -96,7 +96,7 @@ describe TableGo::Renderers::HtmlRenderer do
|
|
96
96
|
t.column :info_text,
|
97
97
|
:label => 'with block level custom formatter' do |value, record, column|
|
98
98
|
|
99
|
-
|
99
|
+
"a special<br/>value"
|
100
100
|
|
101
101
|
end
|
102
102
|
|
@@ -114,7 +114,7 @@ describe TableGo::Renderers::HtmlRenderer do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it 'should render a html table', 'with custom attributes' do
|
117
|
-
subject.cleanup_html.should
|
117
|
+
subject.cleanup_html.should eql %Q(
|
118
118
|
<table id="articles">
|
119
119
|
<caption>one Table</caption>
|
120
120
|
<thead>
|
@@ -157,10 +157,39 @@ describe TableGo::Renderers::HtmlRenderer do
|
|
157
157
|
</table>
|
158
158
|
).cleanup_html
|
159
159
|
end
|
160
|
+
end
|
160
161
|
|
161
162
|
|
162
|
-
|
163
|
+
describe "block style options" do
|
164
|
+
let(:table_with_hash_options) do
|
165
|
+
TableGo.render_html(articles, Article, template,
|
166
|
+
:title => 'one Table',
|
167
|
+
:table_html => { :id => :articles },
|
168
|
+
:row_html => { :class => :row_css_class,
|
169
|
+
:id => lambda { |record| "row_#{record.ident}" }}) do |t|
|
170
|
+
t.column :ident,
|
171
|
+
:column_html => { :class => lambda { |record, column, value| value.even? ? :even : :odd } }
|
172
|
+
end
|
173
|
+
end
|
163
174
|
|
175
|
+
subject(:table_with_block_options) do
|
176
|
+
TableGo.render_html(articles, Article, template) do |t|
|
177
|
+
t.title 'one Table'
|
178
|
+
t.table_html :id => :articles
|
179
|
+
t.row_html :class => :row_css_class,
|
180
|
+
:id => lambda { |record| "row_#{record.ident}" }
|
181
|
+
|
182
|
+
t.column :ident,
|
183
|
+
:column_html => { :class => lambda { |record, column, value| value.even? ? :even : :odd } }
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
|
188
|
+
it "should render the same way as with hash style options" do
|
189
|
+
subject.should eql table_with_hash_options
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
164
193
|
|
165
194
|
end
|
166
195
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: table_go
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Gollnow
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-09
|
13
|
+
date: 2013-10-09 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -67,7 +67,6 @@ files:
|
|
67
67
|
- Rakefile
|
68
68
|
- lib/table_go.rb
|
69
69
|
- lib/table_go/column.rb
|
70
|
-
- lib/table_go/columns.rb
|
71
70
|
- lib/table_go/formatter.rb
|
72
71
|
- lib/table_go/helpers.rb
|
73
72
|
- lib/table_go/railtie.rb
|
@@ -80,7 +79,7 @@ files:
|
|
80
79
|
- lib/table_go/version.rb
|
81
80
|
- spec/fixtures/simple_table.html.haml
|
82
81
|
- spec/spec_helper.rb
|
83
|
-
- spec/table_go/
|
82
|
+
- spec/table_go/helpers_spec.rb
|
84
83
|
- spec/table_go/renderers/csv_renderer_spec.rb
|
85
84
|
- spec/table_go/renderers/html_renderer_spec.rb
|
86
85
|
- table_go.gemspec
|
@@ -110,6 +109,6 @@ summary: ""
|
|
110
109
|
test_files:
|
111
110
|
- spec/fixtures/simple_table.html.haml
|
112
111
|
- spec/spec_helper.rb
|
113
|
-
- spec/table_go/
|
112
|
+
- spec/table_go/helpers_spec.rb
|
114
113
|
- spec/table_go/renderers/csv_renderer_spec.rb
|
115
114
|
- spec/table_go/renderers/html_renderer_spec.rb
|
data/lib/table_go/columns.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module TableGo
|
2
|
-
class Columns
|
3
|
-
include Enumerable
|
4
|
-
attr_accessor :table
|
5
|
-
|
6
|
-
def initialize(table)
|
7
|
-
@table, @columns = table, []
|
8
|
-
end
|
9
|
-
|
10
|
-
def column(name, options = {}, &block)
|
11
|
-
@columns << Column.new(table, name, options, &block)
|
12
|
-
end
|
13
|
-
|
14
|
-
def each(&block)
|
15
|
-
@columns.each(&block)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|