datagrid 0.9.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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