mongoid-data_table 1.0.3 → 1.0.4

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.lock CHANGED
@@ -2,8 +2,8 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  mongoid-data_table (1.0.3)
5
- rails (~> 3.0.0)
6
- will_paginate (~> 3.0.pre2)
5
+ kaminari (~> 0.12.4)
6
+ rails (>= 3.0.0)
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
@@ -43,6 +43,8 @@ GEM
43
43
  erubis (2.6.6)
44
44
  abstract (>= 1.0.0)
45
45
  i18n (0.5.0)
46
+ kaminari (0.12.4)
47
+ rails (>= 3.0.0)
46
48
  mail (2.2.19)
47
49
  activesupport (>= 2.3.6)
48
50
  i18n (>= 0.4.0)
@@ -52,13 +54,12 @@ GEM
52
54
  mocha (0.9.12)
53
55
  mongo (1.3.1)
54
56
  bson (>= 1.3.1)
55
- mongoid (2.0.1)
57
+ mongoid (2.0.2)
56
58
  activemodel (~> 3.0)
57
59
  mongo (~> 1.3)
58
60
  tzinfo (~> 0.3.22)
59
- will_paginate (~> 3.0.pre)
60
61
  polyglot (0.3.1)
61
- rack (1.2.2)
62
+ rack (1.2.3)
62
63
  rack-mount (0.6.14)
63
64
  rack (>= 1.0.0)
64
65
  rack-test (0.5.7)
@@ -76,7 +77,7 @@ GEM
76
77
  activesupport (= 3.0.7)
77
78
  rake (>= 0.8.7)
78
79
  thor (~> 0.14.4)
79
- rake (0.8.7)
80
+ rake (0.9.0)
80
81
  rspec (2.6.0)
81
82
  rspec-core (~> 2.6.0)
82
83
  rspec-expectations (~> 2.6.0)
@@ -91,15 +92,14 @@ GEM
91
92
  polyglot (>= 0.3.1)
92
93
  tzinfo (0.3.27)
93
94
  watchr (0.7)
94
- will_paginate (3.0.pre2)
95
95
 
96
96
  PLATFORMS
97
97
  ruby
98
98
 
99
99
  DEPENDENCIES
100
- bson_ext (~> 1.3.0)
100
+ bson_ext (~> 1.3.1)
101
101
  mocha (~> 0.9.12)
102
- mongoid (~> 2.0.1)
102
+ mongoid (~> 2.0.2)
103
103
  mongoid-data_table!
104
104
  rspec (~> 2.6.0)
105
105
  shoulda (~> 2.11.3)
@@ -6,10 +6,8 @@ require 'active_support/core_ext/string/inflections'
6
6
  require 'active_support/core_ext/class/inheritable_attributes'
7
7
  require 'active_support/concern'
8
8
 
9
- require 'mongoid/criteria'
10
9
  require 'mongoid/relations/proxy'
11
10
 
12
- require 'mongoid/data_table/criteria'
13
11
  require 'mongoid/data_table/proxy'
14
12
  require 'mongoid/data_table/version'
15
13
 
@@ -19,10 +19,7 @@ module Mongoid
19
19
 
20
20
  def collection(force = false)
21
21
  reload if force
22
- @collection ||= conditions.paginate({
23
- :page => current_page,
24
- :per_page => per_page
25
- })
22
+ @collection ||= conditions.page(current_page).per(per_page)
26
23
  end
27
24
 
28
25
  def reload
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module DataTable
3
- VERSION = "1.0.3"
3
+ VERSION = "1.0.4"
4
4
  end
5
5
  end
@@ -16,11 +16,11 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_dependency "rails", "~>3.0.0"
20
- s.add_dependency "will_paginate", "~>3.0.pre2"
19
+ s.add_dependency "rails", ">= 3.0.0"
20
+ s.add_dependency "kaminari", "~> 0.12.4"
21
21
 
22
- s.add_development_dependency "bson_ext", "~>1.3.0"
23
- s.add_development_dependency "mongoid", "~>2.0.1"
22
+ s.add_development_dependency "bson_ext", "~>1.3.1"
23
+ s.add_development_dependency "mongoid", "~>2.0.2"
24
24
  s.add_development_dependency "mocha", "~>0.9.12"
25
25
  s.add_development_dependency "rspec", "~>2.6.0"
26
26
  s.add_development_dependency "shoulda", "~>2.11.3"
data/spec/spec_helper.rb CHANGED
@@ -12,6 +12,7 @@ require 'mongoid'
12
12
  require 'mongoid-data_table'
13
13
  require 'mocha'
14
14
  require 'rspec'
15
+ require 'kaminari'
15
16
 
16
17
  LOGGER = ActiveSupport::BufferedLogger.new($stdout)
17
18
 
@@ -21,6 +22,12 @@ Mongoid.configure do |config|
21
22
  config.logger = nil
22
23
  end
23
24
 
25
+ if defined? ::Mongoid
26
+ require 'kaminari/models/mongoid_extension'
27
+ ::Mongoid::Document.send :include, Kaminari::MongoidExtension::Document
28
+ ::Mongoid::Criteria.send :include, Kaminari::MongoidExtension::Criteria
29
+ end
30
+
24
31
  Dir[ File.join(MODELS, "*.rb") ].sort.each { |file| require File.basename(file) }
25
32
  Dir[ File.join(SUPPORT, "*.rb") ].each { |file| require File.basename(file) }
26
33
 
@@ -2,12 +2,22 @@ require 'spec_helper'
2
2
 
3
3
  describe Mongoid::DataTable::Proxy do
4
4
 
5
- let!(:controller) do
5
+ before do
6
+ Rails.stubs(:logger).returns(LOGGER)
7
+ end
8
+
9
+ let(:controller) do
6
10
  Class.new(ActionController::Base).new.tap do |c|
7
11
  c.stubs(:params).returns({})
8
12
  end
9
13
  end
10
14
 
15
+ let(:custom_array) { %w(custom) }
16
+
17
+ let(:custom_block) do
18
+ lambda { |object| custom_array }
19
+ end
20
+
11
21
  describe "#new" do
12
22
 
13
23
  it "creates a new Mongoid::DataTable::Proxy object" do
@@ -34,8 +44,8 @@ describe Mongoid::DataTable::Proxy do
34
44
 
35
45
  describe "#collection" do
36
46
 
37
- it "should return WillPaginate::Collection" do
38
- proxy.collection.should be_a(WillPaginate::Collection)
47
+ it "should be paged to page 1" do
48
+ proxy.collection.current_page.should == proxy.current_page
39
49
  end
40
50
 
41
51
  it "should reload when passed true" do
@@ -66,4 +76,39 @@ describe Mongoid::DataTable::Proxy do
66
76
 
67
77
  end
68
78
 
79
+ context "with custom block" do
80
+
81
+ let(:bob) do
82
+ Person.find_or_create_by(:name => 'Bob')
83
+ end
84
+
85
+ let(:dt) do
86
+ bob
87
+ Person.criteria.to_data_table(controller, {}, &custom_block)
88
+ end
89
+
90
+ it "should store it as an @extension" do
91
+ dt.extension.should == custom_block
92
+ end
93
+
94
+ describe "#to_hash" do
95
+
96
+ it "should run the custom block" do
97
+ dt.to_hash[:aaData].first.should == custom_array
98
+ end
99
+
100
+ context "with inline block" do
101
+
102
+ it "should run the inline block" do
103
+ a = custom_array.push('inline')
104
+ h = dt.to_hash { |object| a }
105
+ h[:aaData].first.should == a
106
+ end
107
+
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
69
114
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mongoid-data_table
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.3
5
+ version: 1.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jason Dew
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-05-19 00:00:00 Z
14
+ date: 2011-05-23 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -19,20 +19,20 @@ dependencies:
19
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
- - - ~>
22
+ - - ">="
23
23
  - !ruby/object:Gem::Version
24
24
  version: 3.0.0
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: will_paginate
28
+ name: kaminari
29
29
  prerelease: false
30
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
- version: 3.0.pre2
35
+ version: 0.12.4
36
36
  type: :runtime
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
@@ -43,7 +43,7 @@ dependencies:
43
43
  requirements:
44
44
  - - ~>
45
45
  - !ruby/object:Gem::Version
46
- version: 1.3.0
46
+ version: 1.3.1
47
47
  type: :development
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
@@ -54,7 +54,7 @@ dependencies:
54
54
  requirements:
55
55
  - - ~>
56
56
  - !ruby/object:Gem::Version
57
- version: 2.0.1
57
+ version: 2.0.2
58
58
  type: :development
59
59
  version_requirements: *id004
60
60
  - !ruby/object:Gem::Dependency
@@ -122,7 +122,6 @@ files:
122
122
  - Rakefile
123
123
  - lib/mongoid-data_table.rb
124
124
  - lib/mongoid/data_table.rb
125
- - lib/mongoid/data_table/criteria.rb
126
125
  - lib/mongoid/data_table/proxy.rb
127
126
  - lib/mongoid/data_table/version.rb
128
127
  - mongoid-data_table.gemspec
@@ -132,7 +131,6 @@ files:
132
131
  - spec/models/user_agent.rb
133
132
  - spec/spec_helper.rb
134
133
  - spec/unit/mongoid-data_table_spec.rb
135
- - spec/unit/mongoid/data_table/criteria_spec.rb
136
134
  - spec/unit/mongoid/data_table/proxy_spec.rb
137
135
  - spec/unit/mongoid/data_table_spec.rb
138
136
  homepage: http://rubygems.org/gems/mongoid-data_table
@@ -158,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
156
  requirements: []
159
157
 
160
158
  rubyforge_project:
161
- rubygems_version: 1.7.2
159
+ rubygems_version: 1.8.3
162
160
  signing_key:
163
161
  specification_version: 3
164
162
  summary: Simple data preparation from Mongoid to the jQuery DataTables plugin
@@ -169,7 +167,5 @@ test_files:
169
167
  - spec/models/user_agent.rb
170
168
  - spec/spec_helper.rb
171
169
  - spec/unit/mongoid-data_table_spec.rb
172
- - spec/unit/mongoid/data_table/criteria_spec.rb
173
170
  - spec/unit/mongoid/data_table/proxy_spec.rb
174
171
  - spec/unit/mongoid/data_table_spec.rb
175
- has_rdoc:
@@ -1,31 +0,0 @@
1
- module Mongoid
2
- module DataTable
3
- module Criteria
4
- # do nothing
5
- end
6
- end
7
-
8
- class Criteria
9
-
10
- # Used for chaining +Criteria+ scopes together in the for of class methods
11
- # on the +Document+ the criteria is for.
12
- #
13
- # Options:
14
- #
15
- # name: The name of the class method on the +Document+ to chain.
16
- # args: The arguments passed to the method.
17
- # block: Optional block to pass
18
- #
19
- # Returns: <tt>Criteria</tt>
20
- def method_missing(name, *args, &block)
21
- if @klass.respond_to?(name)
22
- @klass.send(:with_scope, self) do
23
- @klass.send(name, *args, &block)
24
- end
25
- else
26
- return entries.send(name, *args)
27
- end
28
- end
29
-
30
- end
31
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Mongoid::DataTable::Criteria do
4
-
5
- before do
6
- Rails.stubs(:logger).returns(LOGGER)
7
- end
8
-
9
- let(:controller) do
10
- Class.new(ActionController::Base).new.tap do |c|
11
- c.stubs(:params).returns({})
12
- end
13
- end
14
-
15
- let(:custom_array) { %w(custom) }
16
-
17
- let(:custom_block) do
18
- lambda { |object| custom_array }
19
- end
20
-
21
- context "with custom block" do
22
-
23
- let(:bob) do
24
- Person.find_or_create_by(:name => 'Bob')
25
- end
26
-
27
- let(:dt) do
28
- bob
29
- Person.criteria.to_data_table(controller, {}, &custom_block)
30
- end
31
-
32
- it "should store it as an @extension" do
33
- dt.extension.should == custom_block
34
- end
35
-
36
- describe "#to_hash" do
37
-
38
- it "should run the custom block" do
39
- dt.to_hash[:aaData].first.should == custom_array
40
- end
41
-
42
- context "with inline block" do
43
-
44
- it "should run the inline block" do
45
- a = custom_array.push('inline')
46
- h = dt.to_hash { |object| a }
47
- h[:aaData].first.should == a
48
- end
49
-
50
- end
51
-
52
- end
53
-
54
- end
55
-
56
- end