datagrid 0.6.4 → 0.7.0
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 +0 -1
- data/Readme.markdown +7 -5
- data/VERSION +1 -1
- data/datagrid.gemspec +5 -5
- data/lib/datagrid/columns.rb +22 -11
- data/lib/datagrid/columns/column.rb +11 -4
- data/lib/datagrid/core.rb +1 -1
- data/lib/datagrid/drivers/abstract_driver.rb +4 -0
- data/lib/datagrid/drivers/active_record.rb +2 -2
- data/lib/datagrid/filters.rb +0 -13
- data/lib/datagrid/filters/base_filter.rb +26 -6
- data/lib/datagrid/filters/date_filter.rb +15 -1
- data/lib/datagrid/filters/integer_filter.rb +6 -0
- data/lib/datagrid/filters/ranged_filter.rb +55 -0
- data/lib/datagrid/form_builder.rb +32 -14
- data/lib/datagrid/helper.rb +2 -2
- data/lib/datagrid/ordering.rb +37 -7
- data/lib/datagrid/renderer.rb +14 -5
- data/lib/datagrid/utils.rb +16 -0
- data/spec/datagrid/columns_spec.rb +19 -7
- data/spec/datagrid/filters/date_filter_spec.rb +96 -0
- data/spec/datagrid/filters/integer_filter_spec.rb +96 -0
- data/spec/datagrid/filters_spec.rb +2 -1
- data/spec/datagrid/form_builder_spec.rb +92 -0
- data/spec/datagrid/helper_spec.rb +89 -5
- data/spec/datagrid/ordering_spec.rb +20 -10
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_record.rb +2 -0
- data/spec/support/simple_report.rb +6 -0
- metadata +6 -19
@@ -97,7 +97,6 @@ describe Datagrid::Helper do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
describe ".datagrid_rows" do
|
100
|
-
|
101
100
|
it "should support urls" do
|
102
101
|
rp = test_report do
|
103
102
|
scope { Entry }
|
@@ -107,6 +106,7 @@ describe Datagrid::Helper do
|
|
107
106
|
"tr td.name a[href=Star]" => "Star"
|
108
107
|
)
|
109
108
|
end
|
109
|
+
|
110
110
|
it "should support conditional urls" do
|
111
111
|
rp = test_report do
|
112
112
|
scope { Entry }
|
@@ -114,9 +114,9 @@ describe Datagrid::Helper do
|
|
114
114
|
end
|
115
115
|
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
116
116
|
"tr td.name" => "Star"
|
117
|
-
)
|
118
|
-
|
117
|
+
)
|
119
118
|
end
|
119
|
+
|
120
120
|
it "should add ordering classes to column" do
|
121
121
|
rp = test_report(:order => :name) do
|
122
122
|
scope { Entry }
|
@@ -125,8 +125,8 @@ describe Datagrid::Helper do
|
|
125
125
|
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
126
126
|
"tr td.name.ordered.asc" => "Star"
|
127
127
|
)
|
128
|
-
|
129
128
|
end
|
129
|
+
|
130
130
|
it "should add ordering classes to column" do
|
131
131
|
rp = test_report(:order => :name, :descending => true) do
|
132
132
|
scope { Entry }
|
@@ -138,7 +138,6 @@ describe Datagrid::Helper do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
it "should render html columns" do
|
141
|
-
|
142
141
|
rp = test_report do
|
143
142
|
scope { Entry }
|
144
143
|
column(:name, :html => true) do |model|
|
@@ -150,6 +149,28 @@ describe Datagrid::Helper do
|
|
150
149
|
)
|
151
150
|
end
|
152
151
|
|
152
|
+
it "should render argument-based html columns" do
|
153
|
+
rp = test_report do
|
154
|
+
scope { Entry }
|
155
|
+
column(:name, :html => lambda {|data| content_tag :h1, data})
|
156
|
+
end
|
157
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
158
|
+
"tr td.name h1" => "Star"
|
159
|
+
)
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should render argument-based html columns with custom data" do
|
163
|
+
rp = test_report do
|
164
|
+
scope { Entry }
|
165
|
+
column(:name, :html => lambda {|data| content_tag :em, data}) do
|
166
|
+
self.name.upcase
|
167
|
+
end
|
168
|
+
end
|
169
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
170
|
+
"tr td.name em" => "STAR"
|
171
|
+
)
|
172
|
+
end
|
173
|
+
|
153
174
|
it "should render html columns with double arguments for column" do
|
154
175
|
rp = test_report do
|
155
176
|
scope { Entry }
|
@@ -162,6 +183,58 @@ describe Datagrid::Helper do
|
|
162
183
|
)
|
163
184
|
end
|
164
185
|
|
186
|
+
it "should render argument-based html blocks with double arguments" do
|
187
|
+
rp = test_report do
|
188
|
+
scope { Entry }
|
189
|
+
column(:name, :html => lambda { |data, model|
|
190
|
+
content_tag :h1, "#{data}-#{model.name.downcase}"
|
191
|
+
})
|
192
|
+
end
|
193
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
194
|
+
"tr td.name h1" => "Star-star"
|
195
|
+
)
|
196
|
+
end
|
197
|
+
|
198
|
+
it "should render argument-based html blocks with triple arguments" do
|
199
|
+
rp = test_report do
|
200
|
+
scope { Entry }
|
201
|
+
column(:name, :html => lambda { |data, model, grid|
|
202
|
+
content_tag :h1, "#{data}-#{model.name.downcase}-#{grid.assets.klass}"
|
203
|
+
})
|
204
|
+
end
|
205
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
206
|
+
"tr td.name h1" => "Star-star-Entry"
|
207
|
+
)
|
208
|
+
end
|
209
|
+
|
210
|
+
it "should render argument-based html blocks with double arguments and custom data" do
|
211
|
+
rp = test_report do
|
212
|
+
scope { Entry }
|
213
|
+
column(:name, :html => lambda { |data, model|
|
214
|
+
content_tag :h1, "#{data}-#{model.name}"
|
215
|
+
}) do
|
216
|
+
self.name.upcase
|
217
|
+
end
|
218
|
+
end
|
219
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
220
|
+
"tr td.name h1" => "STAR-Star"
|
221
|
+
)
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should render argument-based html blocks with triple arguments and custom data" do
|
225
|
+
rp = test_report do
|
226
|
+
scope { Entry }
|
227
|
+
column(:name, :html => lambda { |data, model, grid|
|
228
|
+
content_tag :h1, "#{data}-#{model.name}-#{grid.assets.klass}"
|
229
|
+
}) do
|
230
|
+
self.name.upcase
|
231
|
+
end
|
232
|
+
end
|
233
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
234
|
+
"tr td.name h1" => "STAR-Star-Entry"
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
165
238
|
it "should support columns option" do
|
166
239
|
rp = test_report do
|
167
240
|
scope { Entry }
|
@@ -176,6 +249,17 @@ describe Datagrid::Helper do
|
|
176
249
|
)
|
177
250
|
end
|
178
251
|
|
252
|
+
it "should allow CSS classes to be specified for a column" do
|
253
|
+
rp = test_report do
|
254
|
+
scope { Entry }
|
255
|
+
column(:name, :class => 'my_class')
|
256
|
+
end
|
257
|
+
|
258
|
+
subject.datagrid_rows(rp, [entry]).should match_css_pattern(
|
259
|
+
"tr td.name.my_class" => "Star"
|
260
|
+
)
|
261
|
+
end
|
262
|
+
|
179
263
|
end
|
180
264
|
|
181
265
|
describe ".datagrid_order_for" do
|
@@ -14,7 +14,7 @@ describe Datagrid::Ordering do
|
|
14
14
|
Entry
|
15
15
|
end
|
16
16
|
column :name
|
17
|
-
end.assets.should
|
17
|
+
end.assets.should == [first, second, third]
|
18
18
|
|
19
19
|
end
|
20
20
|
|
@@ -24,9 +24,7 @@ describe Datagrid::Ordering do
|
|
24
24
|
Entry
|
25
25
|
end
|
26
26
|
column :name
|
27
|
-
end.assets.should
|
28
|
-
|
29
|
-
|
27
|
+
end.assets.should == [third, second, first]
|
30
28
|
end
|
31
29
|
|
32
30
|
|
@@ -47,13 +45,25 @@ describe Datagrid::Ordering do
|
|
47
45
|
end
|
48
46
|
|
49
47
|
it "should override default order" do
|
48
|
+
test_report(:order => :name) do
|
49
|
+
scope { Entry.order("name desc")}
|
50
|
+
column(:name, :order => "name asc")
|
51
|
+
end.assets.should == [first, second, third]
|
52
|
+
end
|
50
53
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
it "should support order given as block" do
|
55
|
+
test_report(:order => :name) do
|
56
|
+
scope { Entry }
|
57
|
+
column(:name, :order => proc { order("name desc") })
|
58
|
+
end.assets.should == [third, second, first]
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should support order desc given as block" do
|
62
|
+
test_report(:order => :name, :descending => true) do
|
63
|
+
scope { Entry }
|
64
|
+
column(:name, :order_desc => proc { order("name desc")})
|
65
|
+
end.assets.should == [third, second, first]
|
57
66
|
end
|
67
|
+
|
58
68
|
|
59
69
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -14,6 +14,8 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
14
14
|
t.integer :group_id
|
15
15
|
t.string :name
|
16
16
|
t.string :category
|
17
|
+
t.string :access_level
|
18
|
+
t.string :pet
|
17
19
|
t.boolean :disabled, :null => false, :default => false
|
18
20
|
t.boolean :confirmed, :null => false, :default => false
|
19
21
|
t.date :shipping_date
|
@@ -40,6 +40,12 @@ class SimpleReport
|
|
40
40
|
render :partial => "actions", :locals => {:model => model}
|
41
41
|
end
|
42
42
|
|
43
|
+
column(:access_level, :html => lambda {|data| content_tag :h1, data})
|
44
|
+
|
45
|
+
column(:pet, :html => lambda {|data| content_tag :em, data}) do
|
46
|
+
self.pet.try(:upcase)
|
47
|
+
end
|
48
|
+
|
43
49
|
def param_name
|
44
50
|
:report
|
45
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datagrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -107,22 +107,6 @@ dependencies:
|
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: accept_values_for
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
110
|
- !ruby/object:Gem::Dependency
|
127
111
|
name: nokogiri
|
128
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -275,6 +259,7 @@ files:
|
|
275
259
|
- lib/datagrid/filters/enum_filter.rb
|
276
260
|
- lib/datagrid/filters/float_filter.rb
|
277
261
|
- lib/datagrid/filters/integer_filter.rb
|
262
|
+
- lib/datagrid/filters/ranged_filter.rb
|
278
263
|
- lib/datagrid/filters/string_filter.rb
|
279
264
|
- lib/datagrid/form_builder.rb
|
280
265
|
- lib/datagrid/helper.rb
|
@@ -291,8 +276,10 @@ files:
|
|
291
276
|
- spec/datagrid/drivers/mongoid_spec.rb
|
292
277
|
- spec/datagrid/filters/boolean_enum_filter_spec.rb
|
293
278
|
- spec/datagrid/filters/composite_filters_spec.rb
|
279
|
+
- spec/datagrid/filters/date_filter_spec.rb
|
294
280
|
- spec/datagrid/filters/enum_filter_spec.rb
|
295
281
|
- spec/datagrid/filters/float_filter_spec.rb
|
282
|
+
- spec/datagrid/filters/integer_filter_spec.rb
|
296
283
|
- spec/datagrid/filters_spec.rb
|
297
284
|
- spec/datagrid/form_builder_spec.rb
|
298
285
|
- spec/datagrid/helper_spec.rb
|
@@ -321,7 +308,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
321
308
|
version: '0'
|
322
309
|
segments:
|
323
310
|
- 0
|
324
|
-
hash:
|
311
|
+
hash: 813907041614063922
|
325
312
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
326
313
|
none: false
|
327
314
|
requirements:
|