table_go 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|