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.
@@ -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: