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.
Files changed (39) hide show
  1. data/Readme.markdown +6 -4
  2. data/VERSION +1 -1
  3. data/app/assets/stylesheets/datagrid.css.sass +132 -0
  4. data/app/views/datagrid/_form.html.erb +5 -2
  5. data/app/views/datagrid/_order_for.html.erb +2 -2
  6. data/app/views/datagrid/_table.html.erb +1 -1
  7. data/datagrid.gemspec +10 -3
  8. data/lib/datagrid.rb +1 -0
  9. data/lib/datagrid/column_names_attribute.rb +38 -7
  10. data/lib/datagrid/columns.rb +38 -4
  11. data/lib/datagrid/columns/column.rb +29 -1
  12. data/lib/datagrid/drivers/abstract_driver.rb +8 -0
  13. data/lib/datagrid/drivers/active_record.rb +29 -1
  14. data/lib/datagrid/drivers/array.rb +14 -2
  15. data/lib/datagrid/drivers/mongo_mapper.rb +8 -0
  16. data/lib/datagrid/drivers/mongoid.rb +9 -1
  17. data/lib/datagrid/filters.rb +24 -6
  18. data/lib/datagrid/filters/base_filter.rb +42 -14
  19. data/lib/datagrid/filters/boolean_enum_filter.rb +1 -1
  20. data/lib/datagrid/filters/dynamic_filter.rb +57 -0
  21. data/lib/datagrid/filters/enum_filter.rb +4 -21
  22. data/lib/datagrid/filters/select_options.rb +26 -0
  23. data/lib/datagrid/form_builder.rb +41 -8
  24. data/lib/datagrid/helper.rb +2 -1
  25. data/lib/datagrid/i18n.rb +0 -0
  26. data/lib/datagrid/locale/en.yml +28 -0
  27. data/lib/datagrid/ordering.rb +33 -19
  28. data/lib/datagrid/utils.rb +8 -9
  29. data/spec/datagrid/column_names_attribute_spec.rb +44 -1
  30. data/spec/datagrid/columns_spec.rb +16 -0
  31. data/spec/datagrid/filters/dynamic_filter_spec.rb +37 -0
  32. data/spec/datagrid/filters/integer_filter_spec.rb +18 -0
  33. data/spec/datagrid/filters/string_filter_spec.rb +25 -0
  34. data/spec/datagrid/filters_spec.rb +15 -1
  35. data/spec/datagrid/form_builder_spec.rb +83 -0
  36. data/spec/datagrid/helper_spec.rb +1 -0
  37. data/spec/datagrid/ordering_spec.rb +41 -1
  38. data/spec/datagrid/utils_spec.rb +7 -2
  39. metadata +11 -4
@@ -40,6 +40,7 @@ describe Datagrid::Helper do
40
40
  datagrid_table.should match_css_pattern(
41
41
  "table.datagrid tr td.noresults" => 1
42
42
  )
43
+ datagrid_table.should include("——")
43
44
  end
44
45
  end
45
46
 
@@ -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
@@ -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.9.3
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-08-26 00:00:00.000000000 Z
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: -2282688358265272109
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.24
356
+ rubygems_version: 1.8.25
350
357
  signing_key:
351
358
  specification_version: 3
352
359
  summary: Ruby gem to create datagrids