promiscuous 0.15.0 → 0.16.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.
@@ -30,6 +30,17 @@ module Promiscuous::Publisher::Mongoid::Defer
|
|
30
30
|
Moped::Query.class_eval do
|
31
31
|
alias_method :update_orig, :update
|
32
32
|
def update(change, flags = nil)
|
33
|
+
change = promiscuous_seasoning(change)
|
34
|
+
update_orig(change, flags)
|
35
|
+
end
|
36
|
+
|
37
|
+
alias_method :modify_orig, :modify
|
38
|
+
def modify(change, options={})
|
39
|
+
change = promiscuous_seasoning(change) unless options[:bypass_promiscuous]
|
40
|
+
modify_orig(change, options)
|
41
|
+
end
|
42
|
+
|
43
|
+
def promiscuous_seasoning(change)
|
33
44
|
if Promiscuous::Publisher::Mongoid::Defer.collections[@collection.name]
|
34
45
|
change = change.dup
|
35
46
|
change['$set'] ||= {}
|
@@ -37,7 +48,7 @@ module Promiscuous::Publisher::Mongoid::Defer
|
|
37
48
|
change['$set'].merge!(:_psp => true)
|
38
49
|
change['$inc'].merge!(:_psv => 1)
|
39
50
|
end
|
40
|
-
|
51
|
+
change
|
41
52
|
end
|
42
53
|
end
|
43
54
|
end
|
@@ -30,7 +30,8 @@ class Promiscuous::Publisher::Worker
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
rescue Exception => e
|
33
|
-
self.stop = true
|
33
|
+
self.stop = true unless bareback?
|
34
|
+
|
34
35
|
unless e.is_a?(Promiscuous::Publisher::Error)
|
35
36
|
e = Promiscuous::Publisher::Error.new(e, nil)
|
36
37
|
end
|
@@ -42,7 +43,8 @@ class Promiscuous::Publisher::Worker
|
|
42
43
|
def replicate_collection(klass)
|
43
44
|
return if self.stop
|
44
45
|
# TODO Check for indexes and if not there, bail out
|
45
|
-
while instance = klass.where(:_psp => true).find_and_modify(
|
46
|
+
while instance = klass.where(:_psp => true).find_and_modify(
|
47
|
+
{'$unset' => {:_psp => 1}}, :bypass_promiscuous => true)
|
46
48
|
replicate_instance(instance)
|
47
49
|
end
|
48
50
|
end
|
@@ -15,10 +15,13 @@ class Promiscuous::Subscriber::Worker
|
|
15
15
|
rescue Exception => e
|
16
16
|
e = Promiscuous::Subscriber::Error.new(e, payload)
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
if bareback?
|
19
|
+
metadata.ack
|
20
|
+
else
|
21
|
+
self.stop = true
|
22
|
+
Promiscuous::AMQP.disconnect
|
23
|
+
end
|
24
|
+
Promiscuous.error "[receive] FATAL #{"skipping " if bareback?}#{e} #{e.backtrace.join("\n")}"
|
22
25
|
Promiscuous::Config.error_handler.try(:call, e)
|
23
26
|
end
|
24
27
|
end
|
data/lib/promiscuous/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: promiscuous
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-12-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -116,42 +116,38 @@ executables: []
|
|
116
116
|
extensions: []
|
117
117
|
extra_rdoc_files: []
|
118
118
|
files:
|
119
|
-
- lib/promiscuous/amqp/bunny.rb
|
120
119
|
- lib/promiscuous/amqp/null.rb
|
120
|
+
- lib/promiscuous/amqp/bunny.rb
|
121
121
|
- lib/promiscuous/amqp/rubyamqp.rb
|
122
|
-
- lib/promiscuous/common.rb
|
123
|
-
- lib/promiscuous/common/class_helpers.rb
|
124
122
|
- lib/promiscuous/common/lint.rb
|
125
123
|
- lib/promiscuous/common/lint/base.rb
|
126
|
-
- lib/promiscuous/common/
|
124
|
+
- lib/promiscuous/common/class_helpers.rb
|
127
125
|
- lib/promiscuous/common/worker.rb
|
128
|
-
- lib/promiscuous/
|
126
|
+
- lib/promiscuous/common/options.rb
|
129
127
|
- lib/promiscuous/loader.rb
|
130
|
-
- lib/promiscuous/observer.rb
|
131
|
-
- lib/promiscuous/publisher.rb
|
132
|
-
- lib/promiscuous/publisher/active_record.rb
|
133
128
|
- lib/promiscuous/publisher/envelope.rb
|
134
|
-
- lib/promiscuous/publisher/ephemeral.rb
|
135
|
-
- lib/promiscuous/publisher/error.rb
|
136
129
|
- lib/promiscuous/publisher/lint.rb
|
137
130
|
- lib/promiscuous/publisher/lint/amqp.rb
|
138
131
|
- lib/promiscuous/publisher/lint/attributes.rb
|
139
132
|
- lib/promiscuous/publisher/lint/base.rb
|
140
133
|
- lib/promiscuous/publisher/lint/class.rb
|
141
134
|
- lib/promiscuous/publisher/lint/polymorphic.rb
|
142
|
-
- lib/promiscuous/publisher/mock.rb
|
143
135
|
- lib/promiscuous/publisher/mongoid/embedded.rb
|
144
136
|
- lib/promiscuous/publisher/mongoid/defer_embedded.rb
|
145
137
|
- lib/promiscuous/publisher/mongoid/embedded_many.rb
|
146
138
|
- lib/promiscuous/publisher/mongoid/defer.rb
|
147
139
|
- lib/promiscuous/publisher/polymorphic.rb
|
140
|
+
- lib/promiscuous/publisher/mock.rb
|
141
|
+
- lib/promiscuous/publisher/error.rb
|
148
142
|
- lib/promiscuous/publisher/attributes.rb
|
149
143
|
- lib/promiscuous/publisher/amqp.rb
|
150
|
-
- lib/promiscuous/publisher/
|
144
|
+
- lib/promiscuous/publisher/model.rb
|
145
|
+
- lib/promiscuous/publisher/active_record.rb
|
151
146
|
- lib/promiscuous/publisher/base.rb
|
152
|
-
- lib/promiscuous/publisher/mongoid.rb
|
153
147
|
- lib/promiscuous/publisher/class.rb
|
154
|
-
- lib/promiscuous/publisher/
|
148
|
+
- lib/promiscuous/publisher/ephemeral.rb
|
149
|
+
- lib/promiscuous/publisher/mongoid.rb
|
150
|
+
- lib/promiscuous/publisher/worker.rb
|
155
151
|
- lib/promiscuous/railtie.rb
|
156
152
|
- lib/promiscuous/railtie/replicate.rake
|
157
153
|
- lib/promiscuous/subscriber/active_record.rb
|
@@ -159,27 +155,31 @@ files:
|
|
159
155
|
- lib/promiscuous/subscriber/error.rb
|
160
156
|
- lib/promiscuous/subscriber/lint.rb
|
161
157
|
- lib/promiscuous/subscriber/lint/amqp.rb
|
162
|
-
- lib/promiscuous/subscriber/lint/attributes.rb
|
163
158
|
- lib/promiscuous/subscriber/lint/base.rb
|
164
159
|
- lib/promiscuous/subscriber/lint/class.rb
|
165
160
|
- lib/promiscuous/subscriber/lint/polymorphic.rb
|
166
|
-
- lib/promiscuous/subscriber/
|
161
|
+
- lib/promiscuous/subscriber/lint/attributes.rb
|
167
162
|
- lib/promiscuous/subscriber/mongoid/embedded_many.rb
|
163
|
+
- lib/promiscuous/subscriber/mongoid/embedded.rb
|
168
164
|
- lib/promiscuous/subscriber/mongoid/versioning.rb
|
165
|
+
- lib/promiscuous/subscriber/upsert.rb
|
169
166
|
- lib/promiscuous/subscriber/observer.rb
|
170
167
|
- lib/promiscuous/subscriber/polymorphic.rb
|
171
|
-
- lib/promiscuous/subscriber/upsert.rb
|
172
168
|
- lib/promiscuous/subscriber/amqp.rb
|
173
169
|
- lib/promiscuous/subscriber/attributes.rb
|
174
|
-
- lib/promiscuous/subscriber/base.rb
|
175
|
-
- lib/promiscuous/subscriber/worker.rb
|
176
170
|
- lib/promiscuous/subscriber/model.rb
|
171
|
+
- lib/promiscuous/subscriber/base.rb
|
177
172
|
- lib/promiscuous/subscriber/class.rb
|
178
173
|
- lib/promiscuous/subscriber/mongoid.rb
|
179
|
-
- lib/promiscuous/subscriber.rb
|
180
|
-
- lib/promiscuous/
|
174
|
+
- lib/promiscuous/subscriber/worker.rb
|
175
|
+
- lib/promiscuous/observer.rb
|
176
|
+
- lib/promiscuous/common.rb
|
177
|
+
- lib/promiscuous/config.rb
|
181
178
|
- lib/promiscuous/amqp.rb
|
182
179
|
- lib/promiscuous/worker.rb
|
180
|
+
- lib/promiscuous/ephemeral.rb
|
181
|
+
- lib/promiscuous/subscriber.rb
|
182
|
+
- lib/promiscuous/publisher.rb
|
183
183
|
- lib/promiscuous/version.rb
|
184
184
|
- lib/promiscuous.rb
|
185
185
|
- README.md
|