emque-producing 1.0.0.beta2 → 1.0.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|