datagrid 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -21,8 +21,9 @@ group :development do
21
21
  gem "sqlite3-ruby"
22
22
  gem 'will_paginate', '2.3.15'
23
23
 
24
- gem "mongoid", "2.2.3"
25
- gem "bson_ext"
24
+ gem "mongoid", "2.2.2"
25
+ gem "bson", "1.4.0"
26
+ gem "bson_ext", "1.4.0"
26
27
 
27
28
  gem "fastercsv", :platform => "mri_18"
28
29
  end
data/Gemfile.lock CHANGED
@@ -32,8 +32,8 @@ GEM
32
32
  activesupport (= 3.0.7)
33
33
  activesupport (3.0.7)
34
34
  arel (2.0.10)
35
- bson (1.4.1)
36
- bson_ext (1.4.1)
35
+ bson (1.4.0)
36
+ bson_ext (1.4.0)
37
37
  builder (2.1.2)
38
38
  columnize (0.3.2)
39
39
  diff-lcs (1.1.2)
@@ -54,9 +54,9 @@ GEM
54
54
  treetop (~> 1.4.8)
55
55
  mime-types (1.16)
56
56
  mocha (0.9.12)
57
- mongo (1.4.1)
58
- bson (= 1.4.1)
59
- mongoid (2.2.3)
57
+ mongo (1.4.0)
58
+ bson (= 1.4.0)
59
+ mongoid (2.2.2)
60
60
  activemodel (~> 3.0)
61
61
  mongo (~> 1.3)
62
62
  tzinfo (~> 0.3.22)
@@ -108,12 +108,13 @@ PLATFORMS
108
108
 
109
109
  DEPENDENCIES
110
110
  accept_values_for
111
- bson_ext
111
+ bson (= 1.4.0)
112
+ bson_ext (= 1.4.0)
112
113
  bundler (~> 1.0.0)
113
114
  fastercsv
114
115
  jeweler (~> 1.6.0)
115
116
  mocha
116
- mongoid (= 2.2.3)
117
+ mongoid (= 2.2.2)
117
118
  nokogiri
118
119
  rails (>= 3.0)
119
120
  rake
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.4.1
data/datagrid.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "datagrid"
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bogdan Gusiev"]
12
- s.date = "2011-11-03"
12
+ s.date = "2011-12-06"
13
13
  s.description = "This allows you to easily build datagrid aka data tables with sortable columns and filters"
14
14
  s.email = "agresso@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -54,6 +54,7 @@ Gem::Specification.new do |s|
54
54
  "spec/datagrid/columns_spec.rb",
55
55
  "spec/datagrid/drivers/active_record_spec.rb",
56
56
  "spec/datagrid/drivers/mongoid_spec.rb",
57
+ "spec/datagrid/filters/boolean_enum_filter_spec.rb",
57
58
  "spec/datagrid/filters/composite_filters_spec.rb",
58
59
  "spec/datagrid/filters/enum_filter_spec.rb",
59
60
  "spec/datagrid/filters_spec.rb",
@@ -88,8 +89,9 @@ Gem::Specification.new do |s|
88
89
  s.add_development_dependency(%q<nokogiri>, [">= 0"])
89
90
  s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
90
91
  s.add_development_dependency(%q<will_paginate>, ["= 2.3.15"])
91
- s.add_development_dependency(%q<mongoid>, ["= 2.2.3"])
92
- s.add_development_dependency(%q<bson_ext>, [">= 0"])
92
+ s.add_development_dependency(%q<mongoid>, ["= 2.2.2"])
93
+ s.add_development_dependency(%q<bson>, ["= 1.4.0"])
94
+ s.add_development_dependency(%q<bson_ext>, ["= 1.4.0"])
93
95
  s.add_development_dependency(%q<fastercsv>, [">= 0"])
94
96
  else
95
97
  s.add_dependency(%q<rails>, [">= 3.0"])
@@ -103,8 +105,9 @@ Gem::Specification.new do |s|
103
105
  s.add_dependency(%q<nokogiri>, [">= 0"])
104
106
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
105
107
  s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
106
- s.add_dependency(%q<mongoid>, ["= 2.2.3"])
107
- s.add_dependency(%q<bson_ext>, [">= 0"])
108
+ s.add_dependency(%q<mongoid>, ["= 2.2.2"])
109
+ s.add_dependency(%q<bson>, ["= 1.4.0"])
110
+ s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
108
111
  s.add_dependency(%q<fastercsv>, [">= 0"])
109
112
  end
110
113
  else
@@ -119,8 +122,9 @@ Gem::Specification.new do |s|
119
122
  s.add_dependency(%q<nokogiri>, [">= 0"])
120
123
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
121
124
  s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
122
- s.add_dependency(%q<mongoid>, ["= 2.2.3"])
123
- s.add_dependency(%q<bson_ext>, [">= 0"])
125
+ s.add_dependency(%q<mongoid>, ["= 2.2.2"])
126
+ s.add_dependency(%q<bson>, ["= 1.4.0"])
127
+ s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
124
128
  s.add_dependency(%q<fastercsv>, [">= 0"])
125
129
  end
126
130
  end
@@ -1,4 +1,3 @@
1
-
2
1
  class Datagrid::Columns::Column
3
2
 
4
3
  attr_accessor :grid, :options, :block, :name
@@ -34,7 +33,7 @@ class Datagrid::Columns::Column
34
33
 
35
34
  def header
36
35
  self.options[:header] ||
37
- I18n.translate(self.name, :scope => "reports.#{self.grid.param_name}.columns", :default => self.name.to_s.humanize )
36
+ I18n.translate(self.name, :scope => "datagrid.#{self.grid.param_name}.columns", :default => self.name.to_s.humanize )
38
37
  end
39
38
 
40
39
  def order
@@ -69,7 +69,7 @@ module Datagrid
69
69
  check_scope_defined!("Scope should be defined before filters")
70
70
  grid = self
71
71
  lambda do |value|
72
- grid.driver.where(grid.scope, attribute => value)
72
+ grid.driver.where(scope, attribute => value)
73
73
  end
74
74
  end
75
75
 
@@ -5,6 +5,8 @@
5
5
  # That is why we need thi helper class
6
6
  class Datagrid::Filters::FilterEval
7
7
 
8
+ attr_accessor :filter, :scope, :value
9
+
8
10
  def initialize(filter, scope, value)
9
11
  @filter = filter
10
12
  @scope = scope
@@ -5,8 +5,9 @@ module Datagrid
5
5
 
6
6
  def datagrid_format_value(report, column, asset)
7
7
  value = column.value(asset, report)
8
- if column.options[:url]
9
- link_to(value, column.options[:url].call(asset))
8
+ url = column.options[:url] && column.options[:url].call(asset)
9
+ if url
10
+ link_to(value, url)
10
11
  else
11
12
  case column.format
12
13
  when :url
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datagrid::Filters::BooleanEnumFilter do
4
+
5
+ end
@@ -16,4 +16,13 @@ describe Datagrid::Filters::EnumFilter do
16
16
  end.class.filter_by_name(:group_id).select.should == [1,2]
17
17
  end
18
18
 
19
+ it "should stack with other filters" do
20
+ Entry.create(:name => "ZZ", :category => "first")
21
+ report = test_report(:name => "Pop", :category => "first") do
22
+ scope { Entry }
23
+ filter(:name)
24
+ filter(:category, :enum, :select => ["first", "second"])
25
+ end
26
+ report.assets.should be_empty
27
+ end
19
28
  end
@@ -52,6 +52,24 @@ HTML
52
52
  </th>
53
53
  </tr>
54
54
 
55
+ <tr>
56
+ <td class="group">Pop</td>
57
+ <td class="name">Star</td>
58
+ </tr>
59
+ </table>
60
+ HTML
61
+ end
62
+ it "should support giving assets implicitly" do
63
+ other_entry = Entry.create!(entry.attributes)
64
+ subject.datagrid_table(grid, [entry]).should equal_to_dom(<<-HTML)
65
+ <table class="datagrid">
66
+ <tr>
67
+ <th class="group">Group<div class="order"></div>
68
+ </th>
69
+ <th class="name">Name<div class="order"></div>
70
+ </th>
71
+ </tr>
72
+
55
73
  <tr>
56
74
  <td class="group">Pop</td>
57
75
  <td class="name">Star</td>
@@ -66,6 +84,25 @@ HTML
66
84
  <td class="group">Pop</td>
67
85
  <td class="name">Star</td>
68
86
  </tr>
87
+ HTML
88
+ end
89
+
90
+ it "should support urls" do
91
+ rp = test_report do
92
+ scope { Entry }
93
+ column(:name, :url => lambda {|model| model.name})
94
+ end
95
+ subject.datagrid_rows(rp, [entry], {}).should equal_to_dom(<<-HTML)
96
+ <tr><td class="name"><a href="Star">Star</a></td></tr>
97
+ HTML
98
+ end
99
+ it "should support conditional urls" do
100
+ rp = test_report do
101
+ scope { Entry }
102
+ column(:name, :url => lambda {false})
103
+ end
104
+ subject.datagrid_rows(rp, [entry], {}).should equal_to_dom(<<-HTML)
105
+ <tr><td class="name">Star</td></tr>
69
106
  HTML
70
107
  end
71
108
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datagrid
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bogdan Gusiev
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-03 00:00:00 Z
18
+ date: 2011-12-06 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :runtime
@@ -187,12 +187,12 @@ dependencies:
187
187
  requirements:
188
188
  - - "="
189
189
  - !ruby/object:Gem::Version
190
- hash: 1
190
+ hash: 3
191
191
  segments:
192
192
  - 2
193
193
  - 2
194
- - 3
195
- version: 2.2.3
194
+ - 2
195
+ version: 2.2.2
196
196
  prerelease: false
197
197
  name: mongoid
198
198
  version_requirements: *id012
@@ -201,18 +201,36 @@ dependencies:
201
201
  requirement: &id013 !ruby/object:Gem::Requirement
202
202
  none: false
203
203
  requirements:
204
- - - ">="
204
+ - - "="
205
205
  - !ruby/object:Gem::Version
206
- hash: 3
206
+ hash: 7
207
207
  segments:
208
+ - 1
209
+ - 4
208
210
  - 0
209
- version: "0"
211
+ version: 1.4.0
210
212
  prerelease: false
211
- name: bson_ext
213
+ name: bson
212
214
  version_requirements: *id013
213
215
  - !ruby/object:Gem::Dependency
214
216
  type: :development
215
217
  requirement: &id014 !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - "="
221
+ - !ruby/object:Gem::Version
222
+ hash: 7
223
+ segments:
224
+ - 1
225
+ - 4
226
+ - 0
227
+ version: 1.4.0
228
+ prerelease: false
229
+ name: bson_ext
230
+ version_requirements: *id014
231
+ - !ruby/object:Gem::Dependency
232
+ type: :development
233
+ requirement: &id015 !ruby/object:Gem::Requirement
216
234
  none: false
217
235
  requirements:
218
236
  - - ">="
@@ -223,7 +241,7 @@ dependencies:
223
241
  version: "0"
224
242
  prerelease: false
225
243
  name: fastercsv
226
- version_requirements: *id014
244
+ version_requirements: *id015
227
245
  description: This allows you to easily build datagrid aka data tables with sortable columns and filters
228
246
  email: agresso@gmail.com
229
247
  executables: []
@@ -271,6 +289,7 @@ files:
271
289
  - spec/datagrid/columns_spec.rb
272
290
  - spec/datagrid/drivers/active_record_spec.rb
273
291
  - spec/datagrid/drivers/mongoid_spec.rb
292
+ - spec/datagrid/filters/boolean_enum_filter_spec.rb
274
293
  - spec/datagrid/filters/composite_filters_spec.rb
275
294
  - spec/datagrid/filters/enum_filter_spec.rb
276
295
  - spec/datagrid/filters_spec.rb