alephant-broker 3.5.0 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fda6d6a6605e71b9eb66abf08dddb9d5e1baab44
4
- data.tar.gz: cec4b99897a6bcbf1265586d48ef6bac5cd182e0
3
+ metadata.gz: 8c13b7a9cc8002ce3f9aa7e486c365f043869ac3
4
+ data.tar.gz: 4b1e0a001451521746c6d2f716b8291f0f73c22b
5
5
  SHA512:
6
- metadata.gz: de0065a472ec3619e4ff4ef17b05d797bf80d3a9653b63d635a37a9c76c2a5f86b01ae901d628cc8280d9c4b1437c2f97b0e48522816bd26b61147b805216edf
7
- data.tar.gz: af56c9641a638cb8c2683f713774701530f7972e6bf53e29efe9d46ba3afab8832f353d9899128f1de7965160e061c9f0e58c982792aee35a1cb88f3a8c23201
6
+ metadata.gz: 3cb2662440354ddb7a1d789c1ad268fb008953566d903cb8e051f34dc9850bfd6e87261a8b86ae0c5cb3755b07d3e80d6f862f116b5b6661758f8f63f1ca853e
7
+ data.tar.gz: c845bd7e4e2b8cb82dcf7ff09cd996adad013c3cafa3321f49e9766dcbe2257bcfc88bee6bc12f31f3d1a23ff8d57ab532498df1085c32f71c1f3db30fb13393
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_runtime_dependency "alephant-lookup"
35
35
  spec.add_runtime_dependency "alephant-cache"
36
- spec.add_runtime_dependency "alephant-logger", "~> 1"
36
+ spec.add_runtime_dependency "alephant-logger", "1.2.0"
37
37
  spec.add_runtime_dependency 'alephant-sequencer'
38
38
  spec.add_runtime_dependency "dalli-elasticache"
39
39
  spec.add_runtime_dependency "pmap"
@@ -14,8 +14,8 @@ module Alephant
14
14
  @@elasticache ||= ::Dalli::ElastiCache.new(config_endpoint, { :expires_in => ttl })
15
15
  @@client ||= @@elasticache.client
16
16
  else
17
- logger.debug('Broker::Cache::Client#initialize: No config endpoint, NullClient used')
18
- logger.metric(:name => "BrokerCacheClientNoConfigEndpoint", :unit => "Count", :value => 1)
17
+ logger.debug "Broker::Cache::Client#initialize: No config endpoint, NullClient used"
18
+ logger.metric("NoConfigEndpoint", opts.merge(:function => "initialize"))
19
19
  @@client = NullClient.new
20
20
  end
21
21
  end
@@ -24,8 +24,11 @@ module Alephant
24
24
  begin
25
25
  versioned_key = versioned key
26
26
  result = @@client.get versioned_key
27
- logger.info("Broker::Cache::Client#get key: #{versioned_key} - #{result ? 'hit' : 'miss'}")
28
- logger.metric(:name => "BrokerCacheClientGetKeyMiss", :unit => "Count", :value => 1) unless result
27
+ logger.info "Broker::Cache::Client#get key: #{versioned_key} - #{result ? 'hit' : 'miss'}"
28
+ logger.metric(
29
+ "GetKeyMiss",
30
+ opts[:dimensions].merge(:function => "get")
31
+ ) unless result
29
32
  result ? result : set(key, block.call)
30
33
  rescue StandardError => e
31
34
  block.call if block_given?
@@ -38,12 +41,21 @@ module Alephant
38
41
 
39
42
  private
40
43
 
44
+ def opts
45
+ {
46
+ :dimensions => {
47
+ :module => "AlephantBrokerCache",
48
+ :class => "Client"
49
+ }
50
+ }
51
+ end
52
+
41
53
  def config_endpoint
42
54
  Broker.config['elasticache_config_endpoint']
43
55
  end
44
56
 
45
57
  def ttl
46
- Broker.config['elasticache_ttl'] || DEFAULT_TTL
58
+ Broker.config['elasticache_ttl'] || DEFAULT_TTL
47
59
  end
48
60
 
49
61
  def versioned(key)
@@ -65,4 +77,3 @@ module Alephant
65
77
  end
66
78
  end
67
79
  end
68
-
@@ -19,14 +19,26 @@ module Alephant
19
19
  @load_strategy.load(component_meta)
20
20
  )
21
21
  rescue Alephant::Broker::Errors::ContentNotFound => e
22
- logger.warn 'Broker.ComponentFactory.create: Exception raised (ContentNotFound)'
23
- logger.metric(:name => "BrokerComponentFactoryContentNotFound", :unit => "Count", :value => 1)
22
+ logger.warn "Broker.ComponentFactory.create: Exception raised (ContentNotFound)"
23
+ logger.metric("ContentNotFound", opts)
24
24
  ErrorComponent.new(component_meta, 404, e)
25
25
  rescue => e
26
- logger.warn("Broker.ComponentFactory.create: Exception raised (#{e.message}, #{e.backtrace.join('\n')})")
27
- logger.metric(:name => "BrokerComponentFactoryExceptionRaised", :unit => "Count", :value => 1)
26
+ logger.warn "Broker.ComponentFactory.create: Exception raised (#{e.message}, #{e.backtrace.join('\n')})"
27
+ logger.metric("ExceptionRaised", opts)
28
28
  ErrorComponent.new(component_meta, 500, e)
29
29
  end
30
+
31
+ private
32
+
33
+ def opts
34
+ {
35
+ :dimensions => {
36
+ :module => "AlephantBroker",
37
+ :class => "ComponentFactory",
38
+ :function => "create"
39
+ }
40
+ }
41
+ end
30
42
  end
31
43
  end
32
44
  end
@@ -50,11 +50,21 @@ module Alephant
50
50
  begin
51
51
  JSON.parse(json)
52
52
  rescue JSON::ParserError => e
53
- logger.warn("Broker.environment#data: ParserError")
54
- logger.metric(:name => "BrokerEnvironmentJSONParserError", :unit => "Count", :value => 1)
53
+ logger.warn "Broker.environment#data: ParserError"
54
+ logger.metric("JSONParserError", opts)
55
55
  nil
56
56
  end
57
57
  end
58
+
59
+ def opts
60
+ {
61
+ :dimensions => {
62
+ :module => "AlephantBroker",
63
+ :class => "Environment",
64
+ :function => "parse"
65
+ }
66
+ }
67
+ end
58
68
  end
59
69
  end
60
70
  end
@@ -22,7 +22,10 @@ module Alephant
22
22
  def load(component_meta)
23
23
  cache_object(component_meta)
24
24
  rescue
25
- logger.metric(:name => "BrokerLoadStrategyHTTPCacheMiss", :unit => "Count", :value => 1)
25
+ logger.metric(
26
+ "CacheMiss",
27
+ opts[:dimensions].merge(:function => "load")
28
+ )
26
29
  cache.set(component_meta.cache_key, content(component_meta))
27
30
  end
28
31
 
@@ -56,12 +59,17 @@ module Alephant
56
59
 
57
60
  Faraday.get(url_for component_meta).tap do |r|
58
61
  unless r.success?
59
- logger.metric(:name => "BrokerLoadStrategyHTTPContentNotFound", :unit => "Count", :value => 1)
62
+ logger.metric(
63
+ "ContentNotFound",
64
+ opts[:dimensions].merge(:function => "request")
65
+ )
60
66
  raise Alephant::Broker::Errors::ContentNotFound
61
67
  end
62
68
 
63
69
  request_time = Time.new - before
64
- logger.metric(:name => "BrokerHTTPLoadComponentTime", :unit => "Seconds", :value => request_time)
70
+ logger.metric("LoadComponentTime", opts.merge(
71
+ :unit => "Seconds", :value => request_time,
72
+ ).tap { |h| h[:dimensions].merge!(:function => "request") })
65
73
  end
66
74
  end
67
75
 
@@ -71,6 +79,15 @@ module Alephant
71
79
  component_meta.options
72
80
  )
73
81
  end
82
+
83
+ def opts
84
+ {
85
+ :dimensions => {
86
+ :module => "AlephantBrokerLoadStrategy",
87
+ :class => "HTTP"
88
+ }
89
+ }
90
+ end
74
91
  end
75
92
  end
76
93
  end
@@ -22,9 +22,8 @@ module Alephant
22
22
  )
23
23
  rescue
24
24
  logger.metric(
25
- :name => "BrokerLoadStrategyS3CacheMiss",
26
- :unit => "Count",
27
- :value => 1
25
+ "S3CacheMiss",
26
+ opts[:dimensions].merge(:function => "load")
28
27
  )
29
28
  add_s3_headers(
30
29
  cache.set(
@@ -47,6 +46,15 @@ module Alephant
47
46
 
48
47
  private
49
48
 
49
+ def opts
50
+ {
51
+ :dimensions => {
52
+ :module => "AlephantBrokerLoadStrategyS3",
53
+ :class => "Base"
54
+ }
55
+ }
56
+ end
57
+
50
58
  def s3_path(component_meta)
51
59
  fail NotImplementedError
52
60
  end
@@ -66,9 +74,8 @@ module Alephant
66
74
  s3.get s3_path(component_meta)
67
75
  rescue AWS::S3::Errors::NoSuchKey, InvalidCacheKey
68
76
  logger.metric(
69
- :name => "BrokerLoadStrategyS3InvalidCacheKey",
70
- :unit => "Count",
71
- :value => 1
77
+ "S3InvalidCacheKey",
78
+ opts[:dimensions].merge(:function => "retrieve_object")
72
79
  )
73
80
  raise Alephant::Broker::Errors::ContentNotFound
74
81
  end
@@ -17,8 +17,8 @@ module Alephant
17
17
  env.options
18
18
  )
19
19
  rescue InvalidAssetId
20
- logger.metric(:name => "BrokerRequestAssetInvalidAssetId", :unit => "Count", :value => 1)
21
- logger.warn 'Broker.Request.Asset.initialize: Exception raised (InvalidAssetId)'
20
+ logger.metric("InvalidAssetId", opts)
21
+ logger.error "Broker.Request.Asset.initialize: Exception raised (InvalidAssetId)"
22
22
  end
23
23
 
24
24
  private
@@ -26,6 +26,16 @@ module Alephant
26
26
  def component_id(path)
27
27
  path.split('/')[2] || (raise InvalidAssetId.new 'No Asset ID specified')
28
28
  end
29
+
30
+ def opts
31
+ {
32
+ :dimensions => {
33
+ :module => "AlephantBrokerRequest",
34
+ :class => "Asset",
35
+ :function => "initialize"
36
+ }
37
+ }
38
+ end
29
39
  end
30
40
  end
31
41
  end
@@ -47,11 +47,17 @@ module Alephant
47
47
  end
48
48
 
49
49
  def log
50
- logger.metric(
51
- :name => "BrokerResponse#{status}",
52
- :unit => "Count",
53
- :value => 1
54
- )
50
+ logger.metric("BrokerResponse#{status}", opts)
51
+ end
52
+
53
+ def opts
54
+ {
55
+ :dimensions => {
56
+ :module => "AlephantBrokerResponse",
57
+ :class => "Base",
58
+ :function => "log"
59
+ }
60
+ }
55
61
  end
56
62
  end
57
63
  end
@@ -1,5 +1,5 @@
1
1
  module Alephant
2
2
  module Broker
3
- VERSION = "3.5.0"
3
+ VERSION = "3.5.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,281 +1,281 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Jack
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
15
20
  requirement: !ruby/object:Gem::Requirement
16
21
  requirements:
17
22
  - - '>='
18
23
  - !ruby/object:Gem::Version
19
24
  version: '0'
20
- type: :development
21
25
  prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-nc
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - '>='
25
32
  - !ruby/object:Gem::Version
26
33
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec-nc
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - '>='
32
37
  - !ruby/object:Gem::Version
33
38
  version: '0'
34
- type: :development
35
39
  prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: guard
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
45
  - - '>='
39
46
  - !ruby/object:Gem::Version
40
47
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: guard
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
50
  - - '>='
46
51
  - !ruby/object:Gem::Version
47
52
  version: '0'
48
- type: :development
49
53
  prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard-rspec
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: guard-rspec
57
62
  requirement: !ruby/object:Gem::Requirement
58
63
  requirements:
59
64
  - - '>='
60
65
  - !ruby/object:Gem::Version
61
66
  version: '0'
62
- type: :development
63
67
  prerelease: false
68
+ type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
64
71
  version_requirements: !ruby/object:Gem::Requirement
65
72
  requirements:
66
73
  - - '>='
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: pry
71
76
  requirement: !ruby/object:Gem::Requirement
72
77
  requirements:
73
78
  - - '>='
74
79
  - !ruby/object:Gem::Version
75
80
  version: '0'
76
- type: :development
77
81
  prerelease: false
82
+ type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-remote
78
85
  version_requirements: !ruby/object:Gem::Requirement
79
86
  requirements:
80
87
  - - '>='
81
88
  - !ruby/object:Gem::Version
82
89
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-remote
85
90
  requirement: !ruby/object:Gem::Requirement
86
91
  requirements:
87
92
  - - '>='
88
93
  - !ruby/object:Gem::Version
89
94
  version: '0'
90
- type: :development
91
95
  prerelease: false
96
+ type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-nav
92
99
  version_requirements: !ruby/object:Gem::Requirement
93
100
  requirements:
94
101
  - - '>='
95
102
  - !ruby/object:Gem::Version
96
103
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry-nav
99
104
  requirement: !ruby/object:Gem::Requirement
100
105
  requirements:
101
106
  - - '>='
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
- type: :development
105
109
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
110
+ type: :development
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake-rspec
113
- requirement: !ruby/object:Gem::Requirement
113
+ version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: 0.0.2
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
118
+ requirement: !ruby/object:Gem::Requirement
121
119
  requirements:
122
120
  - - '>='
123
121
  - !ruby/object:Gem::Version
124
122
  version: 0.0.2
123
+ prerelease: false
124
+ type: :development
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler
127
- requirement: !ruby/object:Gem::Requirement
127
+ version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
131
  version: '1.5'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
132
+ requirement: !ruby/object:Gem::Requirement
135
133
  requirements:
136
134
  - - ~>
137
135
  - !ruby/object:Gem::Version
138
136
  version: '1.5'
137
+ prerelease: false
138
+ type: :development
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rake
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
141
146
  requirement: !ruby/object:Gem::Requirement
142
147
  requirements:
143
148
  - - '>='
144
149
  - !ruby/object:Gem::Version
145
150
  version: '0'
146
- type: :development
147
151
  prerelease: false
152
+ type: :development
153
+ - !ruby/object:Gem::Dependency
154
+ name: rack-test
148
155
  version_requirements: !ruby/object:Gem::Requirement
149
156
  requirements:
150
157
  - - '>='
151
158
  - !ruby/object:Gem::Version
152
159
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: rack-test
155
160
  requirement: !ruby/object:Gem::Requirement
156
161
  requirements:
157
162
  - - '>='
158
163
  - !ruby/object:Gem::Version
159
164
  version: '0'
160
- type: :development
161
165
  prerelease: false
166
+ type: :development
167
+ - !ruby/object:Gem::Dependency
168
+ name: alephant-lookup
162
169
  version_requirements: !ruby/object:Gem::Requirement
163
170
  requirements:
164
171
  - - '>='
165
172
  - !ruby/object:Gem::Version
166
173
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: alephant-lookup
169
174
  requirement: !ruby/object:Gem::Requirement
170
175
  requirements:
171
176
  - - '>='
172
177
  - !ruby/object:Gem::Version
173
178
  version: '0'
174
- type: :runtime
175
179
  prerelease: false
180
+ type: :runtime
181
+ - !ruby/object:Gem::Dependency
182
+ name: alephant-cache
176
183
  version_requirements: !ruby/object:Gem::Requirement
177
184
  requirements:
178
185
  - - '>='
179
186
  - !ruby/object:Gem::Version
180
187
  version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: alephant-cache
183
188
  requirement: !ruby/object:Gem::Requirement
184
189
  requirements:
185
190
  - - '>='
186
191
  - !ruby/object:Gem::Version
187
192
  version: '0'
188
- type: :runtime
189
193
  prerelease: false
194
+ type: :runtime
195
+ - !ruby/object:Gem::Dependency
196
+ name: alephant-logger
190
197
  version_requirements: !ruby/object:Gem::Requirement
191
198
  requirements:
192
- - - '>='
199
+ - - '='
193
200
  - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: alephant-logger
201
+ version: 1.2.0
197
202
  requirement: !ruby/object:Gem::Requirement
198
203
  requirements:
199
- - - ~>
204
+ - - '='
200
205
  - !ruby/object:Gem::Version
201
- version: '1'
202
- type: :runtime
206
+ version: 1.2.0
203
207
  prerelease: false
208
+ type: :runtime
209
+ - !ruby/object:Gem::Dependency
210
+ name: alephant-sequencer
204
211
  version_requirements: !ruby/object:Gem::Requirement
205
212
  requirements:
206
- - - ~>
213
+ - - '>='
207
214
  - !ruby/object:Gem::Version
208
- version: '1'
209
- - !ruby/object:Gem::Dependency
210
- name: alephant-sequencer
215
+ version: '0'
211
216
  requirement: !ruby/object:Gem::Requirement
212
217
  requirements:
213
218
  - - '>='
214
219
  - !ruby/object:Gem::Version
215
220
  version: '0'
216
- type: :runtime
217
221
  prerelease: false
222
+ type: :runtime
223
+ - !ruby/object:Gem::Dependency
224
+ name: dalli-elasticache
218
225
  version_requirements: !ruby/object:Gem::Requirement
219
226
  requirements:
220
227
  - - '>='
221
228
  - !ruby/object:Gem::Version
222
229
  version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: dalli-elasticache
225
230
  requirement: !ruby/object:Gem::Requirement
226
231
  requirements:
227
232
  - - '>='
228
233
  - !ruby/object:Gem::Version
229
234
  version: '0'
230
- type: :runtime
231
235
  prerelease: false
236
+ type: :runtime
237
+ - !ruby/object:Gem::Dependency
238
+ name: pmap
232
239
  version_requirements: !ruby/object:Gem::Requirement
233
240
  requirements:
234
241
  - - '>='
235
242
  - !ruby/object:Gem::Version
236
243
  version: '0'
237
- - !ruby/object:Gem::Dependency
238
- name: pmap
239
244
  requirement: !ruby/object:Gem::Requirement
240
245
  requirements:
241
246
  - - '>='
242
247
  - !ruby/object:Gem::Version
243
248
  version: '0'
244
- type: :runtime
245
249
  prerelease: false
250
+ type: :runtime
251
+ - !ruby/object:Gem::Dependency
252
+ name: faraday
246
253
  version_requirements: !ruby/object:Gem::Requirement
247
254
  requirements:
248
255
  - - '>='
249
256
  - !ruby/object:Gem::Version
250
257
  version: '0'
251
- - !ruby/object:Gem::Dependency
252
- name: faraday
253
258
  requirement: !ruby/object:Gem::Requirement
254
259
  requirements:
255
260
  - - '>='
256
261
  - !ruby/object:Gem::Version
257
262
  version: '0'
258
- type: :runtime
259
263
  prerelease: false
264
+ type: :runtime
265
+ - !ruby/object:Gem::Dependency
266
+ name: crimp
260
267
  version_requirements: !ruby/object:Gem::Requirement
261
268
  requirements:
262
269
  - - '>='
263
270
  - !ruby/object:Gem::Version
264
271
  version: '0'
265
- - !ruby/object:Gem::Dependency
266
- name: crimp
267
272
  requirement: !ruby/object:Gem::Requirement
268
273
  requirements:
269
274
  - - '>='
270
275
  - !ruby/object:Gem::Version
271
276
  version: '0'
272
- type: :runtime
273
277
  prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - '>='
277
- - !ruby/object:Gem::Version
278
- version: '0'
278
+ type: :runtime
279
279
  description: Brokers requests for alephant components
280
280
  email:
281
281
  - stevenmajack@gmail.com
@@ -329,7 +329,7 @@ homepage: https://github.com/BBC-News/alephant-broker
329
329
  licenses:
330
330
  - MIT
331
331
  metadata: {}
332
- post_install_message:
332
+ post_install_message:
333
333
  rdoc_options: []
334
334
  require_paths:
335
335
  - lib
@@ -344,9 +344,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
344
344
  - !ruby/object:Gem::Version
345
345
  version: '0'
346
346
  requirements: []
347
- rubyforge_project:
348
- rubygems_version: 2.0.14
349
- signing_key:
347
+ rubyforge_project:
348
+ rubygems_version: 2.1.9
349
+ signing_key:
350
350
  specification_version: 4
351
351
  summary: Brokers requests for alephant components
352
352
  test_files: