mongomapper_plugins 0.0.8 → 1.0.0

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.
@@ -11,19 +11,16 @@ module MongoMapper
11
11
  end
12
12
  end
13
13
 
14
- module InstanceMethods
15
- private
16
- def generate_document_id(options={})
17
- while true
18
- oldest_number = self.class.fields(:_id).sort([[:_id, :descending]]).first.try(:id)
19
- self.id = oldest_number.to_i + 1
20
- begin
21
- break if collection.insert({:_id => id}, :safe => true)
22
- rescue Mongo::OperationFailure => e
23
- #Ignored, trying to get the next key
24
- end
25
- end
14
+ def generate_document_id(options={})
15
+ while true
16
+ oldest_number = self.class.fields(:_id).sort([[:_id, :descending]]).first.try(:id)
17
+ self.id = oldest_number.to_i + 1
18
+ begin
19
+ break if collection.insert({:_id => id}, :safe => true)
20
+ rescue Mongo::OperationFailure => e
21
+ #Ignored, trying to get the next key
26
22
  end
23
+ end
27
24
  end
28
25
  end
29
26
  end
@@ -6,85 +6,83 @@ module MongoMapper
6
6
  def self.configure(mod)
7
7
  end
8
8
 
9
- module InstanceMethods
10
- def set(hash)
11
- hash.each do |key, value|
12
- obj, method = get_obj_and_method(key)
13
- obj.send("#{method}=", value)
14
- end
15
- super hash_to_mongo(hash)
9
+ def set(hash)
10
+ hash.each do |key, value|
11
+ obj, method = get_obj_and_method(key)
12
+ obj.send("#{method}=", value)
16
13
  end
14
+ super hash_to_mongo(hash)
15
+ end
17
16
 
18
- def increment(hash)
19
- hash.each do |key, value|
20
- obj, method = get_obj_and_method(key)
21
- val = obj.send(method)
22
- obj.send("#{method}=", val + value)
23
- end
24
- super hash_to_mongo(hash)
17
+ def increment(hash)
18
+ hash.each do |key, value|
19
+ obj, method = get_obj_and_method(key)
20
+ val = obj.send(method)
21
+ obj.send("#{method}=", val + value)
25
22
  end
23
+ super hash_to_mongo(hash)
24
+ end
26
25
 
27
- def decrement(hash)
28
- hash.each do |key, value|
29
- obj, method = get_obj_and_method(key)
30
- val = obj.send(method)
31
- obj.send("#{method}=", val - value)
32
- end
33
- super hash_to_mongo(hash)
26
+ def decrement(hash)
27
+ hash.each do |key, value|
28
+ obj, method = get_obj_and_method(key)
29
+ val = obj.send(method)
30
+ obj.send("#{method}=", val - value)
34
31
  end
32
+ super hash_to_mongo(hash)
33
+ end
35
34
 
36
- def push(hash)
37
- hash.each do |key, value|
38
- obj, method = get_obj_and_method(key)
39
- obj = obj.send(method)
40
- obj.push value
41
- end
42
- super hash_to_mongo(hash)
35
+ def push(hash)
36
+ hash.each do |key, value|
37
+ obj, method = get_obj_and_method(key)
38
+ obj = obj.send(method)
39
+ obj.push value
43
40
  end
41
+ super hash_to_mongo(hash)
42
+ end
44
43
 
45
- def pull(hash)
46
- hash.each do |key, value|
47
- obj, method = get_obj_and_method(key)
48
- obj = obj.send(method)
49
- obj.delete_if { |e| e == value }
50
- end
51
- super hash_to_mongo(hash)
44
+ def pull(hash)
45
+ hash.each do |key, value|
46
+ obj, method = get_obj_and_method(key)
47
+ obj = obj.send(method)
48
+ obj.delete_if { |e| e == value }
52
49
  end
50
+ super hash_to_mongo(hash)
51
+ end
53
52
 
54
- def add_to_set(hash)
55
- hash.each do |key, value|
56
- obj, method = get_obj_and_method(key)
57
- obj = obj.send(method)
58
- obj.push(value) unless obj.include?(value)
59
- end
60
- super hash_to_mongo(hash)
53
+ def add_to_set(hash)
54
+ hash.each do |key, value|
55
+ obj, method = get_obj_and_method(key)
56
+ obj = obj.send(method)
57
+ obj.push(value) unless obj.include?(value)
61
58
  end
62
- alias push_uniq add_to_set
59
+ super hash_to_mongo(hash)
60
+ end
61
+ alias push_uniq add_to_set
63
62
 
64
- private
65
- def get_obj_and_method(key)
66
- children = key.to_s.split(/\./)
67
- method = children.pop
63
+ private
64
+ def get_obj_and_method(key)
65
+ children = key.to_s.split(/\./)
66
+ method = children.pop
68
67
 
69
- obj = self
70
- children.each do |child|
71
- obj = obj.send(child)
72
- end
68
+ obj = self
69
+ children.each do |child|
70
+ obj = obj.send(child)
71
+ end
73
72
 
74
- [obj, method]
75
- end
73
+ [obj, method]
74
+ end
76
75
 
77
- def hash_to_mongo(arg)
78
- if arg.is_a?(Hash)
79
- keys = arg.keys
80
- keys.each do |k|
81
- arg[k] = hash_to_mongo(arg[k])
82
- end
83
- arg
84
- else
85
- arg && arg.respond_to?(:to_mongo) ? arg.to_mongo : arg
86
- end
76
+ def hash_to_mongo(arg)
77
+ if arg.is_a?(Hash)
78
+ keys = arg.keys
79
+ keys.each do |k|
80
+ arg[k] = hash_to_mongo(arg[k])
87
81
  end
82
+ arg
83
+ else
84
+ arg && arg.respond_to?(:to_mongo) ? arg.to_mongo : arg
85
+ end
88
86
  end
89
87
  end
90
88
  end
@@ -12,18 +12,24 @@ module MongoMapper
12
12
 
13
13
  module OverriddenMethods
14
14
  private
15
- def update(options={})
16
- version = self._version
15
+ # Overriding save_to_collection in lib/mongo_mapper/plugins/querying.rb
16
+ def save_to_collection(options={})
17
+ if persisted?
18
+ @_new = false
19
+ old_version = self._version
17
20
  self._version += 1
18
- ret = collection.update({:_id => _id, :_version => version},
19
- to_mongo,
20
- :safe => true)
21
+ ret = collection.update({:_id => _id, :_version => old_version},
22
+ to_mongo,
23
+ :safe => true)
21
24
  if ret['n'] == 0
22
25
  self._version -= 1
23
26
  raise InvalidVersion
24
27
  end
25
28
  ret['err'].nil?
29
+ else
30
+ super
26
31
  end
32
+ end
27
33
  end
28
34
 
29
35
  class InvalidVersion < StandardError; end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongomapper_plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-02-28 00:00:00.000000000 +02:00
13
- default_executable:
12
+ date: 2011-02-28 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bundler
17
- requirement: &2153690340 !ruby/object:Gem::Requirement
16
+ requirement: &70105439900920 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,7 +21,7 @@ dependencies:
22
21
  version: '1.0'
23
22
  type: :development
24
23
  prerelease: false
25
- version_requirements: *2153690340
24
+ version_requirements: *70105439900920
26
25
  description: A repository of MongoMapper plugins.
27
26
  email: andrew@andrewtimberlake.com
28
27
  executables: []
@@ -38,7 +37,6 @@ files:
38
37
  - lib/mongomapper_plugins/railtie.rb
39
38
  - lib/mongomapper_plugins.rb
40
39
  - README.rdoc
41
- has_rdoc: true
42
40
  homepage: http://github.com/andrewtimberlake/mongomapper_plugins
43
41
  licenses: []
44
42
  post_install_message:
@@ -60,8 +58,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
58
  version: '0'
61
59
  requirements: []
62
60
  rubyforge_project:
63
- rubygems_version: 1.6.2
61
+ rubygems_version: 1.8.15
64
62
  signing_key:
65
63
  specification_version: 3
66
64
  summary: A repository of MongoMapper plugins.
67
65
  test_files: []
66
+ has_rdoc: