mongorilla 0.5.0 → 0.6.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.
- data/lib/mongorilla/collection.rb +13 -9
- data/lib/mongorilla/document.rb +5 -0
- metadata +13 -13
@@ -6,7 +6,7 @@ module Mongorilla
|
|
6
6
|
@@slaves = nil
|
7
7
|
@@slave_index = 0
|
8
8
|
@@config = nil
|
9
|
-
@@
|
9
|
+
@@logger = nil
|
10
10
|
|
11
11
|
def self.master
|
12
12
|
@@master
|
@@ -24,11 +24,15 @@ module Mongorilla
|
|
24
24
|
@@config = YAML.load(File.read(path))
|
25
25
|
end
|
26
26
|
|
27
|
+
def self.output_log(method,contents)
|
28
|
+
@@logger.send(method,contents) if @@logger
|
29
|
+
end
|
30
|
+
|
27
31
|
def self.build(path=File.expand_path("../config.yml",__FILE__),logger=nil)
|
28
32
|
load_config(path)
|
29
33
|
@@config["max_retries"] ||= 10
|
30
34
|
@@config["meantime"] ||= 0.5
|
31
|
-
@@
|
35
|
+
@@logger = logger
|
32
36
|
if @@config["hosts"]
|
33
37
|
@@master = Mongo::ReplSetConnection.new(*@@config["hosts"]).db(@@config["database"])
|
34
38
|
elsif @@config["slaves"]
|
@@ -69,7 +73,7 @@ module Mongorilla
|
|
69
73
|
end
|
70
74
|
|
71
75
|
def count(cond={},opt={})
|
72
|
-
@@
|
76
|
+
@@logger.info("count #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@logger
|
73
77
|
find(cond,opt).count
|
74
78
|
end
|
75
79
|
|
@@ -81,7 +85,7 @@ module Mongorilla
|
|
81
85
|
opt[:read] = :primary
|
82
86
|
end
|
83
87
|
rescue_connection_failure do
|
84
|
-
@@
|
88
|
+
@@logger.info("find(master) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@logger
|
85
89
|
w_col.find(cond,opt)
|
86
90
|
end
|
87
91
|
else
|
@@ -90,11 +94,11 @@ module Mongorilla
|
|
90
94
|
end
|
91
95
|
begin
|
92
96
|
rescue_connection_failure do
|
93
|
-
@@
|
97
|
+
@@logger.info("find(secondary) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@logger
|
94
98
|
r_col.find(cond,opt)
|
95
99
|
end
|
96
100
|
rescue
|
97
|
-
@@
|
101
|
+
@@logger.info("find(master) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@logger
|
98
102
|
w_col.find(cond,opt)
|
99
103
|
end
|
100
104
|
end
|
@@ -102,14 +106,14 @@ module Mongorilla
|
|
102
106
|
|
103
107
|
def insert(data,opt={})
|
104
108
|
rescue_connection_failure do
|
105
|
-
@@
|
109
|
+
@@logger.info("insert #{@name} data:#{data.inspect} opt:#{opt.inspect}") if @@logger
|
106
110
|
w_col.insert(data,opt)
|
107
111
|
end
|
108
112
|
end
|
109
113
|
|
110
114
|
def update(cond,data,opt)
|
111
115
|
rescue_connection_failure do
|
112
|
-
@@
|
116
|
+
@@logger.info("update #{@name} cond:#{cond.inspect} data:#{data.inspect} opt:#{opt.inspect}") if @@logger
|
113
117
|
w_col.update(cond,data,opt)
|
114
118
|
end
|
115
119
|
end
|
@@ -121,7 +125,7 @@ module Mongorilla
|
|
121
125
|
cond = {:_id => cond}
|
122
126
|
end
|
123
127
|
rescue_connection_failure do
|
124
|
-
@@
|
128
|
+
@@logger.info("remove #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@logger
|
125
129
|
w_col.remove(cond,opt)
|
126
130
|
end
|
127
131
|
end
|
data/lib/mongorilla/document.rb
CHANGED
@@ -137,6 +137,11 @@ module Mongorilla
|
|
137
137
|
end
|
138
138
|
opt[:safe] = true if [SYNC,RELOAD].include?(mode)
|
139
139
|
cond.merge!({"_id" => @doc["_id"]})
|
140
|
+
if @changes.keys.length == 0
|
141
|
+
Collection.output_log("warn","save no changed data cond:#{cond.inspect} orig:#{@orig.inspect} doc:#{@doc.inspect}")
|
142
|
+
reset
|
143
|
+
return false
|
144
|
+
end
|
140
145
|
if @changes
|
141
146
|
ret = self.class.collection.update(cond,@changes,opt)
|
142
147
|
if opt[:safe] && ret["n"] != 1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongorilla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongo
|
16
|
-
requirement: &
|
16
|
+
requirement: &21889500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21889500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &21900320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.3.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21900320
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &21910420 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *21910420
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &21920380 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *21920380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rcov
|
60
|
-
requirement: &
|
60
|
+
requirement: &21919120 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *21919120
|
69
69
|
description: Small Object Document Mapper for Mongo. you can update atomic with condition
|
70
70
|
email: laten@nifty.com
|
71
71
|
executables: []
|
@@ -94,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
segments:
|
96
96
|
- 0
|
97
|
-
hash:
|
97
|
+
hash: 4484259814971262728
|
98
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
99
|
none: false
|
100
100
|
requirements:
|