tabulatr 0.0.4 → 0.0.5
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.
- data/Gemfile.lock +1 -1
- data/README.textile +3 -2
- data/lib/tabulatr/tabulatr/data_cell.rb +17 -9
- data/lib/tabulatr/tabulatr/settings.rb +2 -1
- data/lib/tabulatr/version.rb +1 -1
- data/spec/dummy_app/app/views/products/index_simple.html.erb +1 -0
- data/spec/requests/tabulatrs_spec.rb +13 -2
- metadata +4 -23
data/Gemfile.lock
CHANGED
data/README.textile
CHANGED
@@ -149,9 +149,9 @@ If you want to use a predefined stylesheet and the images for sorting and paging
|
|
149
149
|
create public/images/tabulatr/sort_arrow_up.gif
|
150
150
|
create public/images/tabulatr/sort_arrow_up_off.gif
|
151
151
|
-------------------------------------------------------
|
152
|
-
Please note: We have copied a sample stylesheet to
|
152
|
+
Please note: We have copied a sample stylesheet to
|
153
153
|
public/stylesheets/tabulatr.css
|
154
|
-
to actually use it in your application, please include
|
154
|
+
to actually use it in your application, please include
|
155
155
|
it in your layout file. You may use s/th like
|
156
156
|
<%= stylesheet_link_tag :tabulatr %>
|
157
157
|
for that.
|
@@ -260,6 +260,7 @@ h3. Column Options
|
|
260
260
|
format: false, # a sprintf-string or a proc to do special formatting
|
261
261
|
method: false, # if you want to get the column by a different method than its name
|
262
262
|
link: false, # proc or symbol to make the content a link
|
263
|
+
map: true, # whether to map the call on individual records (true) of an association or call on the list (false)
|
263
264
|
join_symbol: ', ', # symbol used to join the elements of 'many' associations
|
264
265
|
sortable: true # if set, sorting-stuff is added to the header cell
|
265
266
|
</pre>
|
@@ -79,16 +79,24 @@ class Tabulatr
|
|
79
79
|
end
|
80
80
|
assoc = @record.class.reflect_on_association(relation)
|
81
81
|
make_tag(:td, opts[:td_html]) do
|
82
|
-
|
83
|
-
|
82
|
+
format = opts[:format]
|
83
|
+
concat(if assoc.collection? and opts[:map]
|
84
|
+
@record.send(relation.to_sym).map do |r|
|
85
|
+
val = h(r.send(opts[:method] || name))
|
86
|
+
if format.is_a?(Proc) then format.call(val)
|
87
|
+
elsif format.is_a?(String) then h(format % val)
|
88
|
+
elsif format.is_a?(Symbol) then Tabulatr::Formattr.format(format, val)
|
89
|
+
else h(val.to_s)
|
90
|
+
end
|
91
|
+
end.join(opts[:join_symbol])
|
84
92
|
else
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
93
|
+
val = h(@record.send(relation.to_sym).send(opts[:method] || name))
|
94
|
+
val = if format.is_a?(Proc) then format.call(val)
|
95
|
+
elsif format.is_a?(String) then h(format % val)
|
96
|
+
elsif format.is_a?(Symbol) then Tabulatr::Formattr.format(format, val)
|
97
|
+
else h(val.to_s)
|
98
|
+
end
|
99
|
+
end)
|
92
100
|
end # </td>
|
93
101
|
end
|
94
102
|
|
@@ -73,7 +73,7 @@ class Tabulatr
|
|
73
73
|
:select_controls => [:select_all, :select_none, :select_visible, :unselect_visible,
|
74
74
|
:select_filtered, :unselect_filtered],
|
75
75
|
|
76
|
-
:image_path_prefix => '/images/tabulatr/',
|
76
|
+
:image_path_prefix => '/images/tabulatr/',
|
77
77
|
:pager_left_button => 'pager_arrow_left.gif',
|
78
78
|
:pager_left_button_inactive => 'pager_arrow_left_off.gif',
|
79
79
|
:pager_right_button => 'pager_arrow_right.gif',
|
@@ -147,6 +147,7 @@ class Tabulatr
|
|
147
147
|
:method => false, # if you want to get the column by a different method than its name
|
148
148
|
:link => false, # proc or symbol to make the content a link
|
149
149
|
:join_symbol => ', ', # symbol used to join the elements of 'many' associations
|
150
|
+
:map => true, # whether to map the call on individual records (true) or call on the list (false)
|
150
151
|
:sortable => true # if set, sorting-stuff is added to the header cell
|
151
152
|
})
|
152
153
|
|
data/lib/tabulatr/version.rb
CHANGED
@@ -16,7 +16,7 @@ describe "Tabulatrs" do
|
|
16
16
|
# General stuf
|
17
17
|
WORKS_IN_GENERAL = CONTAINS_BUTTONS = CONTAINS_COLUMN_HEADERS = CONTAINS_OTHER_CONTROLS = tralse
|
18
18
|
# This fills in the data, so rather not cmment this out
|
19
|
-
CONTAINS_ACTUAL_DATA = CONTAINS_ACTUAL_DATA_MULTIPLE = CONTAINS_DATA_ON_FURTHER_PAGES = true
|
19
|
+
CONTAINS_ACTUAL_DATA = CONTAINS_ASSOC_DATA = CONTAINS_ACTUAL_DATA_MULTIPLE = CONTAINS_DATA_ON_FURTHER_PAGES = true
|
20
20
|
# Paginatione
|
21
21
|
PAGES_UP_AND_DOWN = JUMPS_TO_CORRECT_PAGE = CHANGES_PAGE_SIZE = tralse
|
22
22
|
# Filters
|
@@ -49,7 +49,7 @@ describe "Tabulatrs" do
|
|
49
49
|
|
50
50
|
it "contains column headers" do
|
51
51
|
visit index_simple_products_path
|
52
|
-
['Id','Title','Price','Active','Vendor Name','Tags Title'].each do |n|
|
52
|
+
['Id','Title','Price','Active','Vendor Name','Tags Title','Tags Count'].each do |n|
|
53
53
|
page.should have_content(n)
|
54
54
|
end
|
55
55
|
end if CONTAINS_COLUMN_HEADERS
|
@@ -66,9 +66,20 @@ describe "Tabulatrs" do
|
|
66
66
|
page.should have_content("true")
|
67
67
|
page.should have_content("10.0")
|
68
68
|
page.should have_content("ven d'or")
|
69
|
+
page.should have_content("--0--")
|
69
70
|
page.should have_content(sprintf(Tabulatr::TABLE_OPTIONS[:info_text], 1, 1, 0, 1))
|
70
71
|
end if CONTAINS_ACTUAL_DATA
|
71
72
|
|
73
|
+
it "correctly contains the association data" do
|
74
|
+
product = Product.first
|
75
|
+
[tag1, tag2, tag3].each_with_index do |tag, i|
|
76
|
+
product.tags << tag
|
77
|
+
visit index_simple_products_path
|
78
|
+
page.should have_content tag.title
|
79
|
+
page.should have_content(sprintf("--%d--", i+1))
|
80
|
+
end
|
81
|
+
end if CONTAINS_ASSOC_DATA
|
82
|
+
|
72
83
|
it "contains the actual data multiple" do
|
73
84
|
9.times do |i|
|
74
85
|
product = Product.create!(:title => names[i+1], :active => i.even?, :price => 11.0+i,
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tabulatr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
version: 0.0.4
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.5
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Peter Horn
|
@@ -15,7 +11,7 @@ autorequire:
|
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
13
|
|
18
|
-
date: 2011-03-
|
14
|
+
date: 2011-03-28 00:00:00 +02:00
|
19
15
|
default_executable:
|
20
16
|
dependencies:
|
21
17
|
- !ruby/object:Gem::Dependency
|
@@ -26,9 +22,6 @@ dependencies:
|
|
26
22
|
requirements:
|
27
23
|
- - ~>
|
28
24
|
- !ruby/object:Gem::Version
|
29
|
-
segments:
|
30
|
-
- 3
|
31
|
-
- 0
|
32
25
|
version: "3.0"
|
33
26
|
type: :runtime
|
34
27
|
version_requirements: *id001
|
@@ -40,10 +33,6 @@ dependencies:
|
|
40
33
|
requirements:
|
41
34
|
- - ">="
|
42
35
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 0
|
46
|
-
- 2
|
47
36
|
version: 0.0.2
|
48
37
|
type: :runtime
|
49
38
|
version_requirements: *id002
|
@@ -55,10 +44,6 @@ dependencies:
|
|
55
44
|
requirements:
|
56
45
|
- - ">="
|
57
46
|
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
- 0
|
61
|
-
- 1
|
62
47
|
version: 0.0.1
|
63
48
|
type: :runtime
|
64
49
|
version_requirements: *id003
|
@@ -198,21 +183,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
183
|
requirements:
|
199
184
|
- - ">="
|
200
185
|
- !ruby/object:Gem::Version
|
201
|
-
segments:
|
202
|
-
- 0
|
203
186
|
version: "0"
|
204
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
188
|
none: false
|
206
189
|
requirements:
|
207
190
|
- - ">="
|
208
191
|
- !ruby/object:Gem::Version
|
209
|
-
segments:
|
210
|
-
- 0
|
211
192
|
version: "0"
|
212
193
|
requirements: []
|
213
194
|
|
214
195
|
rubyforge_project: tabulatr
|
215
|
-
rubygems_version: 1.
|
196
|
+
rubygems_version: 1.5.0
|
216
197
|
signing_key:
|
217
198
|
specification_version: 3
|
218
199
|
summary: Tabulatr is a DSL to easily create tables for e.g. admin backends.
|