mongorilla 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@ module Mongorilla
6
6
  @@slaves = nil
7
7
  @@slave_index = 0
8
8
  @@config = nil
9
- @@loger = nil
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
- @@loger = logger
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
- @@loger.info("count #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("find(master) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("find(secondary) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("find(master) #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("insert #{@name} data:#{data.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("update #{@name} cond:#{cond.inspect} data:#{data.inspect} opt:#{opt.inspect}") if @@loger
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
- @@loger.info("remove #{@name} cond:#{cond.inspect} opt:#{opt.inspect}") if @@loger
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
@@ -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.5.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-07 00:00:00.000000000 Z
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: &13628080 !ruby/object:Gem::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: *13628080
24
+ version_requirements: *21889500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &13626300 !ruby/object:Gem::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: *13626300
35
+ version_requirements: *21900320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &13624320 !ruby/object:Gem::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: *13624320
46
+ version_requirements: *21910420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &13635240 !ruby/object:Gem::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: *13635240
57
+ version_requirements: *21920380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &13632820 !ruby/object:Gem::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: *13632820
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: -946876484673399883
97
+ hash: 4484259814971262728
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  none: false
100
100
  requirements: