datagrid 0.9.3 → 1.0.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/Readme.markdown +6 -4
- data/VERSION +1 -1
- data/app/assets/stylesheets/datagrid.css.sass +132 -0
- data/app/views/datagrid/_form.html.erb +5 -2
- data/app/views/datagrid/_order_for.html.erb +2 -2
- data/app/views/datagrid/_table.html.erb +1 -1
- data/datagrid.gemspec +10 -3
- data/lib/datagrid.rb +1 -0
- data/lib/datagrid/column_names_attribute.rb +38 -7
- data/lib/datagrid/columns.rb +38 -4
- data/lib/datagrid/columns/column.rb +29 -1
- data/lib/datagrid/drivers/abstract_driver.rb +8 -0
- data/lib/datagrid/drivers/active_record.rb +29 -1
- data/lib/datagrid/drivers/array.rb +14 -2
- data/lib/datagrid/drivers/mongo_mapper.rb +8 -0
- data/lib/datagrid/drivers/mongoid.rb +9 -1
- data/lib/datagrid/filters.rb +24 -6
- data/lib/datagrid/filters/base_filter.rb +42 -14
- data/lib/datagrid/filters/boolean_enum_filter.rb +1 -1
- data/lib/datagrid/filters/dynamic_filter.rb +57 -0
- data/lib/datagrid/filters/enum_filter.rb +4 -21
- data/lib/datagrid/filters/select_options.rb +26 -0
- data/lib/datagrid/form_builder.rb +41 -8
- data/lib/datagrid/helper.rb +2 -1
- data/lib/datagrid/i18n.rb +0 -0
- data/lib/datagrid/locale/en.yml +28 -0
- data/lib/datagrid/ordering.rb +33 -19
- data/lib/datagrid/utils.rb +8 -9
- data/spec/datagrid/column_names_attribute_spec.rb +44 -1
- data/spec/datagrid/columns_spec.rb +16 -0
- data/spec/datagrid/filters/dynamic_filter_spec.rb +37 -0
- data/spec/datagrid/filters/integer_filter_spec.rb +18 -0
- data/spec/datagrid/filters/string_filter_spec.rb +25 -0
- data/spec/datagrid/filters_spec.rb +15 -1
- data/spec/datagrid/form_builder_spec.rb +83 -0
- data/spec/datagrid/helper_spec.rb +1 -0
- data/spec/datagrid/ordering_spec.rb +41 -1
- data/spec/datagrid/utils_spec.rb +7 -2
- metadata +11 -4
@@ -58,12 +58,52 @@ describe Datagrid::Ordering do
|
|
58
58
|
end.assets.should == [third, second, first]
|
59
59
|
end
|
60
60
|
|
61
|
+
it "should support reversing order given as block" do
|
62
|
+
test_report(:order => :name, :descending => true) do
|
63
|
+
scope { Entry }
|
64
|
+
column(:name, :order => proc { order("name desc") })
|
65
|
+
end.assets.should == [first, second, third]
|
66
|
+
end
|
67
|
+
|
61
68
|
it "should support order desc given as block" do
|
62
69
|
test_report(:order => :name, :descending => true) do
|
63
70
|
scope { Entry }
|
64
71
|
column(:name, :order_desc => proc { order("name desc")})
|
65
72
|
end.assets.should == [third, second, first]
|
66
73
|
end
|
67
|
-
|
74
|
+
|
75
|
+
it "should treat true order as default" do
|
76
|
+
test_report(:order => :name) do
|
77
|
+
scope { Entry }
|
78
|
+
column(:name, :order => true)
|
79
|
+
end.assets.should == [first, second, third]
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should support order_by_value" do
|
83
|
+
report = test_report(:order => :the_name) do
|
84
|
+
scope {Entry}
|
85
|
+
column(:the_name, :order_by_value => true) do
|
86
|
+
name
|
87
|
+
end
|
88
|
+
end
|
89
|
+
report.assets.should == [first, second, third]
|
90
|
+
report.descending = true
|
91
|
+
report.assets.should == [third, second, first]
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should support order_by_value as block" do
|
95
|
+
|
96
|
+
order = { :aa => 2, :bb => 3, :cc => 1}
|
97
|
+
report = test_report(:order => :the_name) do
|
98
|
+
|
99
|
+
scope {Entry}
|
100
|
+
column(:the_name, :order_by_value => proc{|model| order[model.name.to_sym]}) do
|
101
|
+
name
|
102
|
+
end
|
103
|
+
end
|
104
|
+
report.assets.should == [third, first, second]
|
105
|
+
report.descending = true
|
106
|
+
report.assets.should == [second, first, third]
|
107
|
+
end
|
68
108
|
|
69
109
|
end
|
data/spec/datagrid/utils_spec.rb
CHANGED
@@ -6,9 +6,14 @@ describe Datagrid::Utils do
|
|
6
6
|
describe ".warn_once" do
|
7
7
|
it "should work" do
|
8
8
|
silence_warnings do
|
9
|
-
Datagrid::Utils.warn_once("hello").should be_true
|
9
|
+
Datagrid::Utils.warn_once("hello", 0.2).should be_true
|
10
|
+
end
|
11
|
+
sleep(0.1)
|
12
|
+
Datagrid::Utils.warn_once("hello", 0.2).should be_false
|
13
|
+
sleep(0.2)
|
14
|
+
silence_warnings do
|
15
|
+
Datagrid::Utils.warn_once("hello", 0.2).should be_true
|
10
16
|
end
|
11
|
-
Datagrid::Utils.warn_once("hello").should be_false
|
12
17
|
end
|
13
18
|
end
|
14
19
|
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: 1.0.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: 2013-
|
12
|
+
date: 2013-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -250,6 +250,7 @@ files:
|
|
250
250
|
- Rakefile
|
251
251
|
- Readme.markdown
|
252
252
|
- VERSION
|
253
|
+
- app/assets/stylesheets/datagrid.css.sass
|
253
254
|
- app/views/datagrid/_form.html.erb
|
254
255
|
- app/views/datagrid/_head.html.erb
|
255
256
|
- app/views/datagrid/_order_for.html.erb
|
@@ -277,13 +278,17 @@ files:
|
|
277
278
|
- lib/datagrid/filters/composite_filters.rb
|
278
279
|
- lib/datagrid/filters/date_filter.rb
|
279
280
|
- lib/datagrid/filters/default_filter.rb
|
281
|
+
- lib/datagrid/filters/dynamic_filter.rb
|
280
282
|
- lib/datagrid/filters/enum_filter.rb
|
281
283
|
- lib/datagrid/filters/float_filter.rb
|
282
284
|
- lib/datagrid/filters/integer_filter.rb
|
283
285
|
- lib/datagrid/filters/ranged_filter.rb
|
286
|
+
- lib/datagrid/filters/select_options.rb
|
284
287
|
- lib/datagrid/filters/string_filter.rb
|
285
288
|
- lib/datagrid/form_builder.rb
|
286
289
|
- lib/datagrid/helper.rb
|
290
|
+
- lib/datagrid/i18n.rb
|
291
|
+
- lib/datagrid/locale/en.yml
|
287
292
|
- lib/datagrid/ordering.rb
|
288
293
|
- lib/datagrid/renderer.rb
|
289
294
|
- lib/datagrid/rspec.rb
|
@@ -301,9 +306,11 @@ files:
|
|
301
306
|
- spec/datagrid/filters/boolean_enum_filter_spec.rb
|
302
307
|
- spec/datagrid/filters/composite_filters_spec.rb
|
303
308
|
- spec/datagrid/filters/date_filter_spec.rb
|
309
|
+
- spec/datagrid/filters/dynamic_filter_spec.rb
|
304
310
|
- spec/datagrid/filters/enum_filter_spec.rb
|
305
311
|
- spec/datagrid/filters/float_filter_spec.rb
|
306
312
|
- spec/datagrid/filters/integer_filter_spec.rb
|
313
|
+
- spec/datagrid/filters/string_filter_spec.rb
|
307
314
|
- spec/datagrid/filters_spec.rb
|
308
315
|
- spec/datagrid/form_builder_spec.rb
|
309
316
|
- spec/datagrid/helper_spec.rb
|
@@ -337,7 +344,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
337
344
|
version: '0'
|
338
345
|
segments:
|
339
346
|
- 0
|
340
|
-
hash: -
|
347
|
+
hash: -2432952415509999407
|
341
348
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
342
349
|
none: false
|
343
350
|
requirements:
|
@@ -346,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
353
|
version: '0'
|
347
354
|
requirements: []
|
348
355
|
rubyforge_project:
|
349
|
-
rubygems_version: 1.8.
|
356
|
+
rubygems_version: 1.8.25
|
350
357
|
signing_key:
|
351
358
|
specification_version: 3
|
352
359
|
summary: Ruby gem to create datagrids
|