mongomapper_id2 0.0.4 → 0.0.5
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
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
= mongomapper_id2
|
2
2
|
|
3
|
-
It’s a MongoMapper’s plugin to add auto incremented id
|
3
|
+
It’s a MongoMapper’s plugin to add auto incremented id in MongoMapper’s documents.
|
4
4
|
|
5
|
-
This gem
|
5
|
+
This gem was based on this post http://ihswebdesign.com/blog/autoincrement-in-mongodb-with-ruby/
|
6
6
|
|
7
7
|
== Installation
|
8
8
|
|
@@ -35,12 +35,28 @@ This gem is inspired in this blog post http://ihswebdesign.com/blog/autoincremen
|
|
35
35
|
movie2 = Movie.create(:title => 'Pirates of Silicon Valley')
|
36
36
|
movie2.id2 # 2
|
37
37
|
|
38
|
+
== Overriding the default id
|
39
|
+
|
40
|
+
If you want to override the default id, just add the option ":override => true"
|
41
|
+
|
42
|
+
# app/models/movie.rb
|
43
|
+
class Movie
|
44
|
+
include MongoMapper::Document
|
45
|
+
|
46
|
+
key :title, String
|
47
|
+
# Here is the mongomapper_id2
|
48
|
+
auto_increment! :override => true
|
49
|
+
end
|
50
|
+
|
51
|
+
Activating this option the default id will be replaced by an auto incremented id
|
52
|
+
|
53
|
+
movie = Movie.create(:title => 'Pirates of Silicon Valley')
|
54
|
+
movie.id # 1
|
55
|
+
|
38
56
|
== Do you want to improve mongomapper_id2
|
39
57
|
|
40
58
|
You’re welcome to make your contributions and send them as a pull request
|
41
59
|
|
42
|
-
http://pablocantero.com/blog/contato
|
43
|
-
|
44
60
|
=== Development
|
45
61
|
|
46
62
|
$ gem install bundler (if you don't have it)
|
data/lib/mongomapper_id2.rb
CHANGED
@@ -15,19 +15,16 @@ module MongoMapper
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
self.id = self.id2.to_s
|
26
|
-
end
|
18
|
+
private
|
19
|
+
def update_auto_increment
|
20
|
+
self.id2 = MongomapperId2::Incrementor[self.class.name].inc
|
21
|
+
end
|
22
|
+
def update_auto_increment_override
|
23
|
+
update_auto_increment
|
24
|
+
self.id = self.id2.to_s
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|
30
28
|
end
|
31
29
|
|
32
30
|
MongoMapper::Document.plugin(MongoMapper::Plugins::AutoIncrement)
|
33
|
-
MongoMapper::EmbeddedDocument.plugin(MongoMapper::Plugins::AutoIncrement)
|
@@ -8,13 +8,13 @@ class AutoIncrementTest < Test::Unit::TestCase
|
|
8
8
|
setup do
|
9
9
|
@klass = Doc do
|
10
10
|
key :title, String
|
11
|
+
auto_increment!
|
11
12
|
end
|
12
|
-
|
13
|
-
|
13
|
+
|
14
14
|
@klass_override = Doc do
|
15
15
|
key :title, String
|
16
|
+
auto_increment! :override => true
|
16
17
|
end
|
17
|
-
@klass_override.auto_increment! :override => true
|
18
18
|
end
|
19
19
|
|
20
20
|
should 'set id2 on create' do
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# File.expand_path("../lib/mongomapper_id2.rb", __FILE__)
|
2
|
+
#
|
3
|
+
# require 'test_helper'
|
4
|
+
# require 'mongomapper_id2'
|
5
|
+
#
|
6
|
+
# class AutoIncrementTest < Test::Unit::TestCase
|
7
|
+
# context 'autoincrementing' do
|
8
|
+
# setup do
|
9
|
+
# @klass = EDoc do
|
10
|
+
# key :title, String
|
11
|
+
# auto_increment!
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# @klass_override = EDoc do
|
15
|
+
# key :title, String
|
16
|
+
# auto_increment! :override => true
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# should 'set id2 on create' do
|
21
|
+
# doc = @klass.new(:title => 'The Simpsons Movie')
|
22
|
+
# doc.id2.should be(nil)
|
23
|
+
# doc.save
|
24
|
+
# doc.id2.should_not be(nil)
|
25
|
+
# id2 = doc.id2
|
26
|
+
# doc.save
|
27
|
+
# doc.id2.should eql id2
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# should 'auto increment id2' do
|
31
|
+
# doc = @klass.new(:title => 'Pirates of Silicon Valley')
|
32
|
+
# doc.save
|
33
|
+
# doc2 = @klass.new(:title => 'Tropa de Elite')
|
34
|
+
# doc2.save
|
35
|
+
# (doc.id2 + 1).should eql doc2.id2
|
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
|
43
|
+
# end
|
44
|
+
# end
|
metadata
CHANGED
@@ -1,98 +1,125 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongomapper_id2
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Pablo Cantero
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: mongo_mapper
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: log_buddy
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
25
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: log_buddy
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
35
38
|
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: jnunemaker-matchy
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: jnunemaker-matchy
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
46
54
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: shoulda
|
50
55
|
prerelease: false
|
51
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: shoulda
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
52
65
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
57
70
|
type: :development
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: timecop
|
61
71
|
prerelease: false
|
62
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
73
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: timecop
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
68
86
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: mocha
|
72
87
|
prerelease: false
|
73
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
89
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: mocha
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
79
102
|
type: :development
|
80
|
-
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
81
110
|
description:
|
82
|
-
email:
|
111
|
+
email:
|
83
112
|
- pablo@pablocantero
|
84
113
|
executables: []
|
85
|
-
|
86
114
|
extensions: []
|
87
|
-
|
88
115
|
extra_rdoc_files: []
|
89
|
-
|
90
|
-
files:
|
116
|
+
files:
|
91
117
|
- lib/incrementor.rb
|
92
118
|
- lib/mongomapper_id2/version.rb
|
93
119
|
- lib/mongomapper_id2.rb
|
94
120
|
- test/_NOTE_ON_TESTING
|
95
|
-
- test/functional/
|
121
|
+
- test/functional/test_auto_increment_doc.rb
|
122
|
+
- test/functional/test_auto_increment_embed.rb
|
96
123
|
- test/models.rb
|
97
124
|
- test/test_active_model_lint.rb
|
98
125
|
- test/test_helper.rb
|
@@ -100,30 +127,27 @@ files:
|
|
100
127
|
- README.rdoc
|
101
128
|
homepage: https://github.com/phstc/mongomapper_id2
|
102
129
|
licenses: []
|
103
|
-
|
104
130
|
post_install_message:
|
105
131
|
rdoc_options: []
|
106
|
-
|
107
|
-
require_paths:
|
132
|
+
require_paths:
|
108
133
|
- lib
|
109
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
135
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version:
|
115
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
141
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version:
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
121
146
|
requirements: []
|
122
|
-
|
123
147
|
rubyforge_project: mongomapper_id2
|
124
|
-
rubygems_version: 1.8.
|
148
|
+
rubygems_version: 1.8.24
|
125
149
|
signing_key:
|
126
150
|
specification_version: 3
|
127
|
-
summary:
|
151
|
+
summary: It is a MongoMapper's plugin to add auto incremented id in MongoMapper's
|
152
|
+
documents.
|
128
153
|
test_files: []
|
129
|
-
|