mongomapper_id2 0.0.3 → 0.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/README.rdoc +1 -1
- data/lib/mongomapper_id2.rb +15 -14
- data/lib/mongomapper_id2/version.rb +1 -1
- data/test/functional/test_auto_increment.rb +14 -3
- metadata +18 -105
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= mongomapper_id2
|
2
2
|
|
3
|
-
It’s a MongoMapper plugin to add auto incremented id to your MongoMapper documents
|
3
|
+
It’s a MongoMapper’s plugin to add auto incremented id to your MongoMapper’s documents
|
4
4
|
|
5
5
|
This gem is inspired in this blog post http://ihswebdesign.com/blog/autoincrement-in-mongodb-with-ruby/
|
6
6
|
|
data/lib/mongomapper_id2.rb
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
require 'incrementor'
|
2
2
|
|
3
|
-
|
4
|
-
# Your code goes here...
|
5
|
-
end
|
6
|
-
|
7
|
-
# Base on http://railstips.org/blog/archives/2010/02/21/mongomapper-07-plugins/
|
3
|
+
# Based on http://railstips.org/blog/archives/2010/02/21/mongomapper-07-plugins/
|
8
4
|
module MongoMapper
|
9
5
|
module Plugins
|
10
6
|
module AutoIncrement
|
7
|
+
extend ActiveSupport::Concern
|
11
8
|
module ClassMethods
|
12
|
-
def auto_increment!
|
9
|
+
def auto_increment! options = {:override => false}
|
13
10
|
key :id2
|
14
|
-
|
11
|
+
if(options[:override])
|
12
|
+
class_eval { before_create class_eval { :update_auto_increment_override }}
|
13
|
+
else
|
14
|
+
class_eval { before_create class_eval { :update_auto_increment }}
|
15
|
+
end
|
15
16
|
end
|
16
17
|
end
|
17
18
|
module InstanceMethods
|
@@ -19,14 +20,14 @@ module MongoMapper
|
|
19
20
|
def update_auto_increment
|
20
21
|
self.id2 = MongomapperId2::Incrementor[self.class.name].inc
|
21
22
|
end
|
23
|
+
def update_auto_increment_override
|
24
|
+
update_auto_increment
|
25
|
+
self.id = self.id2.to_s
|
26
|
+
end
|
22
27
|
end
|
23
28
|
end
|
24
29
|
end
|
25
30
|
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
model.plugin MongoMapper::Plugins::AutoIncrement
|
30
|
-
end
|
31
|
-
end
|
32
|
-
MongoMapper::Document.append_inclusions(AutoIncrementPluginAddition)
|
31
|
+
|
32
|
+
MongoMapper::Document.plugin(MongoMapper::Plugins::AutoIncrement)
|
33
|
+
MongoMapper::EmbeddedDocument.plugin(MongoMapper::Plugins::AutoIncrement)
|
@@ -4,15 +4,20 @@ require 'test_helper'
|
|
4
4
|
require 'mongomapper_id2'
|
5
5
|
|
6
6
|
class AutoIncrementTest < Test::Unit::TestCase
|
7
|
-
context
|
7
|
+
context 'autoincrementing' do
|
8
8
|
setup do
|
9
9
|
@klass = Doc do
|
10
10
|
key :title, String
|
11
11
|
end
|
12
12
|
@klass.auto_increment!
|
13
|
+
|
14
|
+
@klass_override = Doc do
|
15
|
+
key :title, String
|
16
|
+
end
|
17
|
+
@klass_override.auto_increment! :override => true
|
13
18
|
end
|
14
19
|
|
15
|
-
should
|
20
|
+
should 'set id2 on create' do
|
16
21
|
doc = @klass.new(:title => 'The Simpsons Movie')
|
17
22
|
doc.id2.should be(nil)
|
18
23
|
doc.save
|
@@ -22,12 +27,18 @@ class AutoIncrementTest < Test::Unit::TestCase
|
|
22
27
|
doc.id2.should eql id2
|
23
28
|
end
|
24
29
|
|
25
|
-
should
|
30
|
+
should 'auto increment id2' do
|
26
31
|
doc = @klass.new(:title => 'Pirates of Silicon Valley')
|
27
32
|
doc.save
|
28
33
|
doc2 = @klass.new(:title => 'Tropa de Elite')
|
29
34
|
doc2.save
|
30
35
|
(doc.id2 + 1).should eql doc2.id2
|
31
36
|
end
|
37
|
+
|
38
|
+
should 'override id' do
|
39
|
+
doc2 = @klass_override.new(:title => 'Tropa de Elite')
|
40
|
+
doc2.save
|
41
|
+
doc2.id2.to_s.should eql doc2.id
|
42
|
+
end
|
32
43
|
end
|
33
44
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongomapper_id2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.4
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Pablo Cantero
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
18
|
-
default_executable:
|
13
|
+
date: 2011-06-16 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: mongo_mapper
|
@@ -25,141 +20,64 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - ">="
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
23
|
version: "0"
|
31
24
|
type: :runtime
|
32
25
|
version_requirements: *id001
|
33
26
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
27
|
+
name: log_buddy
|
35
28
|
prerelease: false
|
36
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
30
|
none: false
|
38
31
|
requirements:
|
39
32
|
- - ">="
|
40
33
|
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
|
43
|
-
- 3
|
44
|
-
- 4
|
45
|
-
version: 2.3.4
|
46
|
-
type: :runtime
|
34
|
+
version: "0"
|
35
|
+
type: :development
|
47
36
|
version_requirements: *id002
|
48
37
|
- !ruby/object:Gem::Dependency
|
49
|
-
name: jnunemaker-
|
38
|
+
name: jnunemaker-matchy
|
50
39
|
prerelease: false
|
51
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
41
|
none: false
|
53
42
|
requirements:
|
54
|
-
- -
|
43
|
+
- - ">="
|
55
44
|
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
|
58
|
-
- 8
|
59
|
-
- 4
|
60
|
-
version: 1.8.4
|
61
|
-
type: :runtime
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
62
47
|
version_requirements: *id003
|
63
48
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
49
|
+
name: shoulda
|
65
50
|
prerelease: false
|
66
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
52
|
none: false
|
68
53
|
requirements:
|
69
|
-
- -
|
54
|
+
- - ">="
|
70
55
|
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
|
73
|
-
- 3
|
74
|
-
- 6
|
75
|
-
version: 0.3.6
|
76
|
-
type: :runtime
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
77
58
|
version_requirements: *id004
|
78
59
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
60
|
+
name: timecop
|
80
61
|
prerelease: false
|
81
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
63
|
none: false
|
83
64
|
requirements:
|
84
65
|
- - ">="
|
85
66
|
- !ruby/object:Gem::Version
|
86
|
-
segments:
|
87
|
-
- 0
|
88
67
|
version: "0"
|
89
68
|
type: :development
|
90
69
|
version_requirements: *id005
|
91
70
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
71
|
+
name: mocha
|
93
72
|
prerelease: false
|
94
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
95
74
|
none: false
|
96
75
|
requirements:
|
97
76
|
- - ">="
|
98
77
|
- !ruby/object:Gem::Version
|
99
|
-
segments:
|
100
|
-
- 0
|
101
78
|
version: "0"
|
102
79
|
type: :development
|
103
80
|
version_requirements: *id006
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
name: jnunemaker-matchy
|
106
|
-
prerelease: false
|
107
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
|
-
requirements:
|
110
|
-
- - ~>
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
segments:
|
113
|
-
- 0
|
114
|
-
- 4
|
115
|
-
- 0
|
116
|
-
version: 0.4.0
|
117
|
-
type: :development
|
118
|
-
version_requirements: *id007
|
119
|
-
- !ruby/object:Gem::Dependency
|
120
|
-
name: shoulda
|
121
|
-
prerelease: false
|
122
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ~>
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
segments:
|
128
|
-
- 2
|
129
|
-
- 11
|
130
|
-
version: "2.11"
|
131
|
-
type: :development
|
132
|
-
version_requirements: *id008
|
133
|
-
- !ruby/object:Gem::Dependency
|
134
|
-
name: timecop
|
135
|
-
prerelease: false
|
136
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
segments:
|
142
|
-
- 0
|
143
|
-
- 3
|
144
|
-
- 1
|
145
|
-
version: 0.3.1
|
146
|
-
type: :development
|
147
|
-
version_requirements: *id009
|
148
|
-
- !ruby/object:Gem::Dependency
|
149
|
-
name: mocha
|
150
|
-
prerelease: false
|
151
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
152
|
-
none: false
|
153
|
-
requirements:
|
154
|
-
- - ~>
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
segments:
|
157
|
-
- 0
|
158
|
-
- 9
|
159
|
-
- 8
|
160
|
-
version: 0.9.8
|
161
|
-
type: :development
|
162
|
-
version_requirements: *id010
|
163
81
|
description:
|
164
82
|
email:
|
165
83
|
- pablo@pablocantero
|
@@ -180,7 +98,6 @@ files:
|
|
180
98
|
- test/test_helper.rb
|
181
99
|
- LICENSE
|
182
100
|
- README.rdoc
|
183
|
-
has_rdoc: true
|
184
101
|
homepage: https://github.com/phstc/mongomapper_id2
|
185
102
|
licenses: []
|
186
103
|
|
@@ -194,23 +111,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
111
|
requirements:
|
195
112
|
- - ">="
|
196
113
|
- !ruby/object:Gem::Version
|
197
|
-
segments:
|
198
|
-
- 0
|
199
114
|
version: "0"
|
200
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
116
|
none: false
|
202
117
|
requirements:
|
203
118
|
- - ">="
|
204
119
|
- !ruby/object:Gem::Version
|
205
|
-
segments:
|
206
|
-
- 0
|
207
120
|
version: "0"
|
208
121
|
requirements: []
|
209
122
|
|
210
123
|
rubyforge_project: mongomapper_id2
|
211
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.8.5
|
212
125
|
signing_key:
|
213
126
|
specification_version: 3
|
214
|
-
summary: "It\xE2\x80\x99s a MongoMapper plugin to add auto incremented id to your MongoMapper documents"
|
127
|
+
summary: "It\xE2\x80\x99s a MongoMapper\xE2\x80\x99s plugin to add auto incremented id to your MongoMapper\xE2\x80\x99s documents"
|
215
128
|
test_files: []
|
216
129
|
|