emque-producing 1.0.0.beta2 → 1.0.0.beta3
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/emque-producing.gemspec +5 -5
- data/lib/emque/producing/configuration.rb +4 -2
- data/lib/emque/producing/message/message.rb +19 -1
- data/lib/emque/producing/publisher/rabbitmq.rb +2 -0
- data/lib/emque/producing/version.rb +1 -1
- data/spec/producing/configuration_spec.rb +6 -0
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19e301f2d62804e0d20cbc5e13b638d119689450
|
4
|
+
data.tar.gz: e2ed15a182f17ea513ab226b0c0b042286a3de2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c0c854f7eef1fe8c34d99f6769d11494a67e4d72c9d613606b8db6c4337e6fb6dcf5d3930219def3abc7a2d1979f26fdcf41d9a25827f2164c68584bb30f0ae
|
7
|
+
data.tar.gz: 0bf8501110ead37953355eac96fe02fcf2fe676a801e1cd9d472bbee9066756a455471a080edc343e44a082bad05c012a6c5963e480ff86ed9c602ddebef1429
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ Add these lines to your application's Gemfile, depending on your message broker:
|
|
16
16
|
|
17
17
|
# for RabbitMQ, bunny is used
|
18
18
|
gem "emque-producing"
|
19
|
-
gem "bunny", "~> 1.
|
19
|
+
gem "bunny", "~> 1.7"
|
20
20
|
|
21
21
|
And then execute:
|
22
22
|
|
@@ -33,7 +33,7 @@ Or install it yourself as:
|
|
33
33
|
Emque::Producing.configure do |c|
|
34
34
|
c.app_name = "app"
|
35
35
|
c.publishing_adapter = :rabbitmq
|
36
|
-
c.rabbitmq_options
|
36
|
+
c.rabbitmq_options[:url] = "amqp://guest:guest@localhost:5672"
|
37
37
|
c.error_handlers << Proc.new {|ex,context|
|
38
38
|
# notify/log
|
39
39
|
}
|
data/emque-producing.gemspec
CHANGED
@@ -21,12 +21,12 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency "oj", "~> 2.11"
|
25
|
-
spec.add_dependency "virtus", "~> 1.0"
|
24
|
+
spec.add_dependency "oj", "~> 2.11.4"
|
25
|
+
spec.add_dependency "virtus", "~> 1.0.4"
|
26
26
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.7"
|
28
|
-
spec.add_development_dependency "rake", "~> 10.4"
|
29
|
-
spec.add_development_dependency "rspec",
|
28
|
+
spec.add_development_dependency "rake", "~> 10.4.2"
|
29
|
+
spec.add_development_dependency "rspec", "~> 3.2.0"
|
30
30
|
spec.add_development_dependency "pry"
|
31
|
-
spec.add_development_dependency "bunny", "~> 1.7"
|
31
|
+
spec.add_development_dependency "bunny", "~> 1.7.0"
|
32
32
|
end
|
@@ -3,10 +3,10 @@ module Emque
|
|
3
3
|
class Configuration
|
4
4
|
attr_accessor :app_name
|
5
5
|
attr_accessor :publishing_adapter
|
6
|
-
attr_accessor :rabbitmq_options
|
7
6
|
attr_accessor :error_handlers
|
8
7
|
attr_accessor :log_publish_message
|
9
8
|
attr_accessor :publish_messages
|
9
|
+
attr_reader :rabbitmq_options
|
10
10
|
|
11
11
|
def initialize
|
12
12
|
@app_name = ""
|
@@ -14,7 +14,9 @@ module Emque
|
|
14
14
|
@error_handlers = []
|
15
15
|
@log_publish_message = false
|
16
16
|
@publish_messages = true
|
17
|
-
@rabbitmq_options = {
|
17
|
+
@rabbitmq_options = {
|
18
|
+
:url => "amqp://guest:guest@localhost:5672"
|
19
|
+
}
|
18
20
|
end
|
19
21
|
end
|
20
22
|
end
|
@@ -24,6 +24,18 @@ module Emque
|
|
24
24
|
@message_type
|
25
25
|
end
|
26
26
|
|
27
|
+
def raise_on_failure(name)
|
28
|
+
@raise_on_failure = name
|
29
|
+
end
|
30
|
+
|
31
|
+
def read_raise_on_failure
|
32
|
+
if @raise_on_failure.nil?
|
33
|
+
true
|
34
|
+
else
|
35
|
+
@raise_on_failure
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
27
39
|
def private_attribute(name, coercion=nil, opts={})
|
28
40
|
@private_attrs ||= []
|
29
41
|
@private_attrs << name
|
@@ -64,6 +76,10 @@ module Emque
|
|
64
76
|
self.class.read_message_type
|
65
77
|
end
|
66
78
|
|
79
|
+
def raise_on_failure?
|
80
|
+
self.class.read_raise_on_failure
|
81
|
+
end
|
82
|
+
|
67
83
|
def valid?
|
68
84
|
invalid_attributes.empty? && topic && message_type
|
69
85
|
end
|
@@ -88,7 +104,9 @@ module Emque
|
|
88
104
|
if Emque::Producing.configuration.publish_messages
|
89
105
|
sent = publisher.publish(topic, message_type, to_json, partition_key)
|
90
106
|
log "sent #{sent}"
|
91
|
-
|
107
|
+
if raise_on_failure? && !sent
|
108
|
+
raise MessagesNotSentError.new
|
109
|
+
end
|
92
110
|
end
|
93
111
|
else
|
94
112
|
log "failed...", true
|
@@ -27,7 +27,9 @@ module Emque
|
|
27
27
|
# the message was not sent. Uses publisher confirms to wait.
|
28
28
|
ch.confirm_select
|
29
29
|
sent = true
|
30
|
+
|
30
31
|
exchange.on_return do |return_info, properties, content|
|
32
|
+
Emque::Producing.logger.warn("App [#{properties[:app_id]}] message was returned from exchange [#{return_info[:exchange]}]")
|
31
33
|
sent = false
|
32
34
|
end
|
33
35
|
|
@@ -12,4 +12,10 @@ describe Emque::Producing::Configuration do
|
|
12
12
|
subject.app_name = "my app"
|
13
13
|
expect(subject.app_name).to eq "my app"
|
14
14
|
end
|
15
|
+
|
16
|
+
it "does not allow rabbitmq_options to be overwritten" do
|
17
|
+
expect {
|
18
|
+
subject.rabbitmq_options = {:requires_confirmation => false}
|
19
|
+
}.to raise_error
|
20
|
+
end
|
15
21
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emque-producing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emily Dobervich
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 2.11.4
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 2.11.4
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: virtus
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.0.4
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 1.0.4
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,28 +59,28 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 10.4.2
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 10.4.2
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: 3.2.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
83
|
+
version: 3.2.0
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: pry
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,14 +101,14 @@ dependencies:
|
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
104
|
+
version: 1.7.0
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
111
|
+
version: 1.7.0
|
112
112
|
description: Define and send messages to a variety of message brokers
|
113
113
|
email:
|
114
114
|
- emily@teamsnap.com
|