evrone-common-amqp 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a2ff64fea744fab85ab2b7c267c3a72e4b82c60
4
- data.tar.gz: 621aef8263bf27dea0744aaa13add4431e888daa
3
+ metadata.gz: 13e75e0e8027b05c344009de228c214703cffaf8
4
+ data.tar.gz: 957c8666262ad04d916252f6446f4136e6dcc91c
5
5
  SHA512:
6
- metadata.gz: ce1d83cd400b77d953ad4a2fcb1038c57f7ff3372ff309fbcd5638296b0d3b872d926ed8d5a423c01aa942cfc194fa3a2021ed5ae318be1e015f19d54f3437a5
7
- data.tar.gz: ec16503bdaef0234e555a71664bec7dfff88990251b6ce02571f830d06936046e892538bfa2e50e95300cf335cfa35b94bd1f7598e5cd0141b7e35973861dbaf
6
+ metadata.gz: 46fd1b8ec7e5561e7fc6d61c29c86b3a4b64b0b2122689b800a10b671f0da4281c00149a4bf3171dcdd50233041514906eaefe68d22447b397f6dcb5f8d42c95
7
+ data.tar.gz: f2ef3a3725cad3aaa5762864f9f2185461619b3b106ffd0074a7d3c195deda60c72b3fd09343aba1273d40a76d524044fdb75d43026b2e91975e4ab1c0a001cc
@@ -24,29 +24,38 @@ module Evrone
24
24
  end
25
25
 
26
26
  %w{ exchange queue }.each do |m|
27
- define_method m do |*name|
27
+ define_method m do |*name, &b|
28
28
  options = name.last.is_a?(Hash) ? name.pop : {}
29
- consumer_configuration.__send__(m).name = name.first
29
+ val = b || name.first
30
+ consumer_configuration.__send__(m).name = val
30
31
  consumer_configuration.__send__(m).options = options
31
32
  end
32
33
 
33
34
  define_method "#{m}_name" do
34
- consumer_configuration.__send__(m).name || consumer_name
35
+ value_maybe_proc(consumer_configuration.__send__(m).name || consumer_name)
35
36
  end
36
37
 
37
38
  define_method "#{m}_options" do
38
- consumer_configuration.__send__(m).options
39
+ value_maybe_proc(consumer_configuration.__send__(m).options)
39
40
  end
40
41
  end
41
42
 
42
- def routing_key(name = nil)
43
- consumer_configuration.routing_key = name if name
44
- consumer_configuration.routing_key
43
+ def routing_key(name = nil, &block)
44
+ val = block || name
45
+ if val
46
+ consumer_configuration.routing_key = val
47
+ else
48
+ value_maybe_proc consumer_configuration.routing_key
49
+ end
45
50
  end
46
51
 
47
- def headers(values = nil)
48
- consumer_configuration.headers = values unless values == nil
49
- consumer_configuration.headers
52
+ def headers(values = nil, &block)
53
+ val = block || values
54
+ if val
55
+ consumer_configuration.headers = val
56
+ else
57
+ value_maybe_proc consumer_configuration.headers
58
+ end
50
59
  end
51
60
 
52
61
  def model(value = nil)
@@ -80,6 +89,15 @@ module Evrone
80
89
 
81
90
  private
82
91
 
92
+ def value_maybe_proc(val)
93
+ case val
94
+ when Proc
95
+ val.call
96
+ else
97
+ val
98
+ end
99
+ end
100
+
83
101
  def make_consumer_name
84
102
  to_s.scan(/[A-Z][a-z]*/).join("_")
85
103
  .downcase
@@ -1,7 +1,7 @@
1
1
  module Evrone
2
2
  module Common
3
3
  module AMQP
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.4"
5
5
  end
6
6
  end
7
7
  end
@@ -68,13 +68,25 @@ describe Evrone::Common::AMQP::Consumer do
68
68
 
69
69
  context "set routing_key" do
70
70
  before { consumer_class.routing_key 'key' }
71
- it { should eq({routing_key: 'key'}) }
71
+ it { should eq(routing_key: 'key') }
72
+ end
73
+
74
+ context "set routing_key by block" do
75
+ before do
76
+ consumer_class.routing_key { 'key.block' }
77
+ end
78
+ it { should eq(routing_key: 'key.block') }
72
79
  end
73
80
 
74
81
  context "set headers" do
75
82
  before { consumer_class.headers 'key' }
76
83
  it { should eq({headers: 'key'}) }
77
84
  end
85
+
86
+ context "set headers by block" do
87
+ before { consumer_class.headers { 'key.block' } }
88
+ it { should eq(headers: 'key.block') }
89
+ end
78
90
  end
79
91
 
80
92
  context "ack" do
@@ -101,6 +113,11 @@ describe Evrone::Common::AMQP::Consumer do
101
113
  consumer_class.exchange :foo
102
114
  expect(subject).to eq :foo
103
115
  end
116
+
117
+ it "when set by block should be" do
118
+ consumer_class.exchange { 'name.block' }
119
+ expect(subject).to eq 'name.block'
120
+ end
104
121
  end
105
122
 
106
123
  context "queue_name" do
@@ -113,6 +130,11 @@ describe Evrone::Common::AMQP::Consumer do
113
130
  consumer_class.queue :bar
114
131
  expect(subject).to eq :bar
115
132
  end
133
+
134
+ it "when set by block should be" do
135
+ consumer_class.queue { 'name.block' }
136
+ expect(subject).to eq 'name.block'
137
+ end
116
138
  end
117
139
 
118
140
  %w{ queue exchange }.each do |m|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evrone-common-amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-04 00:00:00.000000000 Z
11
+ date: 2013-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny