alephant-broker 0.0.2 → 0.0.3

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: 1c7eb9d93af6eb83061d4cba25206c4bd7aeb391
4
- data.tar.gz: a8acd8e9e369fe2c00deedf2ede6fe3fa513842b
3
+ metadata.gz: 62ea8a88fdcc92e2e8d8cacf3b7b35e4dc3077d0
4
+ data.tar.gz: e58c67bdb11c2b4028bb897337f795ca13e9a48f
5
5
  SHA512:
6
- metadata.gz: f499be32c43b244351fe3e1d56aec13f71cc9ad3d4efacbc0bdeb677689f62070dc6345bd5972193a597859985fec5e3c50734e67a92222ab1116f065ab1f66b
7
- data.tar.gz: 92d32d8eb5e3a5a2123fb7dc80b4ff45d4724548c78055ba704eb11df2201ad0d7dd448fdd282981d77d879ade9ee4fafb066f1254556ded486299af1c83c11f
6
+ metadata.gz: f4a00e454e3dd9ea1b6ca4bfd8c62e99df6791891c30873153a1546254e29c679e4145751cb7371f46da59f317c583f5a35231650d954fb863b97d7a6dcbef99
7
+ data.tar.gz: 2dbbb0dbdd399039794d5e72f120d1901087506e544384ada28c627422e7e2639dc1eee9b507e68925e06e82d0ffa8fba5b6db05eaa5f3f32f44cd49492bb8e0
data/.gitignore CHANGED
@@ -4,4 +4,3 @@ Gemfile.lock
4
4
  *.gem
5
5
 
6
6
  /pkg
7
- .ruby-version
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ jruby-1.7.9
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - "jruby"
4
+ notifications:
5
+ email:
6
+ recipients:
7
+ - kenoir@gmail.com
8
+ on_failure: change
9
+ on_success: never
data/Rakefile CHANGED
@@ -1,3 +1,9 @@
1
- $: << File.join(File.dirname(__FILE__),"..", "lib")
1
+ $:.unshift File.join(File.dirname(__FILE__), 'lib')
2
2
 
3
- require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+ require 'bundler/gem_tasks'
5
+ require 'alephant/broker'
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ task :default => :spec
@@ -28,7 +28,9 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_development_dependency "bundler", "~> 1.5"
30
30
  spec.add_development_dependency "rake"
31
+ spec.add_development_dependency "rack-test"
31
32
 
32
33
  spec.add_runtime_dependency "alephant-lookup"
33
34
  spec.add_runtime_dependency "alephant-cache"
35
+ spec.add_runtime_dependency 'alephant-logger'
34
36
  end
@@ -2,10 +2,13 @@ $: << File.dirname(__FILE__)
2
2
 
3
3
  require 'alephant/broker'
4
4
  require 'alephant/broker/models/request'
5
+ require 'alephant/logger'
5
6
 
6
7
  module Alephant
7
8
  module Broker
8
9
  class Application
10
+ include Logger
11
+
9
12
  def initialize(config)
10
13
  @config = config
11
14
  end
@@ -2,6 +2,10 @@ module Alephant
2
2
  module Broker
3
3
  class InvalidCacheKey < Exception
4
4
 
5
+ def initialize
6
+ super("Cache key not found based on component_id and options combination")
7
+ end
8
+
5
9
  end
6
10
  end
7
11
  end
@@ -1,8 +1,10 @@
1
- require 'cgi'
1
+ require 'alephant/logger'
2
2
 
3
3
  module Alephant
4
4
  module Broker
5
5
  class Request
6
+ include Logger
7
+
6
8
  attr_reader :type, :component_id, :options, :extension, :content_type
7
9
 
8
10
  DEFAULT_EXTENSION = :html
@@ -16,17 +18,20 @@ module Alephant
16
18
  request = request_components(path, querystring)
17
19
  case request[:type]
18
20
  when "component"
21
+ logger.info("Broker.request: Type: component, Asset ID: #{request[:component_id]}, Options: #{request[:options].inspect}")
19
22
  @type = :asset
20
23
 
21
24
  @component_id = request[:component_id]
22
25
  raise Errors::InvalidAssetId.new("No Asset ID specified") if @component_id.nil?
23
26
 
24
27
  @options = request[:options]
25
- @extension = request[:extension] || DEFAULT_EXTENSION
28
+ @extension = request[:extension]
26
29
  @content_type = @@extension_mapping[@extension.to_sym] || @@extension_mapping[DEFAULT_EXTENSION]
27
30
  when "status"
31
+ logger.info("Broker.request: Type: status")
28
32
  @type = :status
29
33
  else
34
+ logger.info("Broker.request: Type: notfound")
30
35
  @type = :notfound
31
36
  end
32
37
  end
@@ -35,10 +40,11 @@ module Alephant
35
40
 
36
41
  def request_components(path, query_string)
37
42
  request_parts = path.split('/')
43
+ extension = path.split('.')[1] ? path.split('.')[1].to_sym : DEFAULT_EXTENSION
38
44
  {
39
45
  :type => request_parts[1],
40
46
  :component_id => (request_parts[2] || '').split('.')[0],
41
- :extension => path.split('.')[1],
47
+ :extension => extension,
42
48
  :options => options_from(query_string)
43
49
  }
44
50
  end
@@ -4,6 +4,7 @@ require 'alephant/broker/models/response_factory'
4
4
  module Alephant
5
5
  module Broker
6
6
  class RequestHandler
7
+ include Logger
7
8
 
8
9
  def initialize(config)
9
10
  @response_factory = ResponseFactory.new(config)
@@ -13,6 +14,7 @@ module Alephant
13
14
  begin
14
15
  @response_factory.response_from(request)
15
16
  rescue Exception => e
17
+ logger.info("Broker.requestHandler.process: Exception raised (#{e.message})")
16
18
  @response_factory.response(500)
17
19
  end
18
20
  end
@@ -5,6 +5,7 @@ require 'alephant/broker/errors/invalid_cache_key'
5
5
  module Alephant
6
6
  module Broker
7
7
  class AssetResponse < Response
8
+ include Logger
8
9
 
9
10
  attr_reader :request
10
11
 
@@ -19,16 +20,22 @@ module Alephant
19
20
  begin
20
21
  self.content_type = request.content_type
21
22
  self.content = @cache.get cache_id
22
- rescue AWS::S3::Errors::NoSuchKey, InvalidCacheKey
23
- self.status = 404
23
+ rescue AWS::S3::Errors::NoSuchKey, InvalidCacheKey => e
24
+ set_error_for(e, 404)
24
25
  rescue Exception => e
25
- self.status = 500
26
+ set_error_for(e, 500)
26
27
  end
27
28
 
28
29
  end
29
30
 
30
31
  private
31
32
 
33
+ def set_error_for(exception, status)
34
+ logger.info("Broker.assetResponse.set_error_for: #{status} exception raised (#{exception.message})")
35
+ self.status = status
36
+ self.content = exception.message
37
+ end
38
+
32
39
  def cache_id
33
40
  @lookup.read(request.options).tap { |cache_id| raise InvalidCacheKey if cache_id.nil? }
34
41
  end
@@ -5,12 +5,11 @@ module Alephant
5
5
  module Broker
6
6
  class ResponseFactory
7
7
 
8
- def initialize(config)
8
+ def initialize(config = nil)
9
9
  @config = config
10
10
  end
11
11
 
12
12
  def response_from(request)
13
-
14
13
  case request.type
15
14
  when :asset
16
15
  AssetResponse.new(request, @config)
@@ -21,7 +20,6 @@ module Alephant
21
20
  when :error
22
21
  response(500)
23
22
  end
24
-
25
23
  end
26
24
 
27
25
  def response(status)
@@ -1,5 +1,5 @@
1
1
  module Alephant
2
2
  module Broker
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alephant::Broker::AssetResponse do
4
+
5
+ describe "#initialize(request, config)" do
6
+ let(:config) { { :lookup_table_name => 'test_table', :bucket_id => 'test_bucket', :path => 'test_path' } }
7
+ let(:request) { double("Alephant::Broker::Request", :component_id => 'test', :content_type => 'text/html', :options => {:variant => 'test_variant'} ) }
8
+ let(:location) { 'test_location' }
9
+
10
+ before {
11
+ @lookup_table = double('Alephant::Lookup::LookupTable')
12
+ Alephant::Lookup.stub(:create).and_return(@lookup_table)
13
+ }
14
+
15
+ it "Should return the content from a successful cache lookup" do
16
+ allow(@lookup_table).to receive(:read).with(request.options).and_return(location)
17
+ Alephant::Cache.any_instance.stub(:initialize)
18
+ Alephant::Cache.any_instance.stub(:get).with(location).and_return('Test cache content')
19
+ instance = Alephant::Broker::AssetResponse.new(request, config)
20
+
21
+ expect(instance.content).to eq('Test cache content')
22
+ expect(instance.status).to eq(200)
23
+ end
24
+
25
+ it "should return a 404 if lookup can't find a valid location" do
26
+ allow(@lookup_table).to receive(:read).with(request.options).and_return(nil)
27
+ Alephant::Cache.any_instance.stub(:initialize)
28
+ instance = Alephant::Broker::AssetResponse.new(request, config)
29
+
30
+ expect(instance.content).to eq('Cache key not found based on component_id and options combination')
31
+ expect(instance.status).to eq(404)
32
+ end
33
+
34
+ it "should return a 500 for any other exceptions" do
35
+ allow(@lookup_table).to receive(:read).with(request.options).and_raise(Exception)
36
+ instance = Alephant::Broker::AssetResponse.new(request, config)
37
+
38
+ expect(instance.status).to eq(500)
39
+
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+
46
+
data/spec/rack_spec.rb ADDED
@@ -0,0 +1,72 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'rack/test'
4
+ require 'alephant/broker/app/rack'
5
+
6
+ RSpec.configure do |conf|
7
+ conf.include Rack::Test::Methods
8
+ end
9
+
10
+ describe 'Broker rack app tests' do
11
+
12
+ before {
13
+ @lookup_table = double('Alephant::Lookup::LookupTable')
14
+ Alephant::Lookup.stub(:create).and_return(@lookup_table)
15
+
16
+ Alephant::Cache.any_instance.stub(:initialize)
17
+ Alephant::Cache.any_instance.stub(:get).and_return('Test response')
18
+ }
19
+
20
+ def app
21
+ Alephant::Broker::RackApplication.new({
22
+ :lookup_table_name => 'test_table',
23
+ :bucket_id => 'test_bucket',
24
+ :path => 'bucket_path'
25
+ })
26
+ end
27
+
28
+ it "Tests status page" do
29
+ get '/status'
30
+ expect(last_response).to be_ok
31
+ expect(last_response.body).to eq('ok')
32
+ end
33
+
34
+ it "Tests not found page" do
35
+ get '/some/non-existent-page'
36
+ expect(last_response.status).to eq(404)
37
+ expect(last_response.body).to eq('Not found')
38
+ end
39
+
40
+ it "Test asset data is returned" do
41
+ allow(@lookup_table).to receive(:read).and_return('some_location')
42
+
43
+ get '/component/test_component'
44
+ expect(last_response).to be_ok
45
+ expect(last_response.body).to eq('Test response')
46
+ end
47
+
48
+ it "Tests query string parameters are passed correctly to lookup" do
49
+ variant = {:variant => 'test_variant'}
50
+ allow(@lookup_table).to receive(:read).with(variant).and_return('some_location')
51
+
52
+ get '/component/test_component?variant=test_variant'
53
+ expect(last_response).to be_ok
54
+ expect(last_response.body).to eq('Test response')
55
+ end
56
+
57
+ it "Tests 404 when lookup doesn't return a valid location" do
58
+ allow(@lookup_table).to receive(:read).and_return(nil)
59
+
60
+ get '/component/test_component'
61
+ expect(last_response.status).to eq(404)
62
+
63
+ end
64
+
65
+ it "Tests 500 when exception is raised in application" do
66
+ allow(@lookup_table).to receive(:read).and_raise(Exception)
67
+
68
+ get '/component/test_component'
69
+ expect(last_response.status).to eq(500)
70
+ end
71
+
72
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alephant::Broker::Request do
4
+
5
+ describe "#initialize(path, querystring)" do
6
+ let(:component_id) { 'foo' }
7
+ let(:querystring) { 'variant=test' }
8
+
9
+
10
+ it "Sets the component id" do
11
+
12
+ instance = Alephant::Broker::Request.new("/component/#{component_id}", '')
13
+ expect(instance.component_id).to eq(component_id)
14
+ end
15
+
16
+ it "Sets the request type to asset" do
17
+
18
+ instance = Alephant::Broker::Request.new("/component/#{component_id}", '')
19
+ expect(instance.type).to eq(:asset)
20
+ expect(instance.options).to eq({})
21
+ end
22
+
23
+ it "Sets the request type to asset with parsed options" do
24
+ instance = Alephant::Broker::Request.new("/component/#{component_id}", querystring)
25
+ expect(instance.type).to eq(:asset)
26
+ expect(instance.options).to eq({ :variant => 'test' })
27
+
28
+ end
29
+
30
+ it "Sets the request type to status" do
31
+ instance = Alephant::Broker::Request.new("/status", '')
32
+ expect(instance.type).to eq(:status)
33
+ end
34
+
35
+ it "Sets the default extension" do
36
+ instance = Alephant::Broker::Request.new("/component/blah", '')
37
+ expect(instance.extension).to eq(:html)
38
+ end
39
+
40
+ it "Sets the extension from the path" do
41
+ instance = Alephant::Broker::Request.new("/component/blah.json", '')
42
+ expect(instance.extension).to eq(:json)
43
+ end
44
+
45
+ it "Sets the content type to default if the extension does not exist" do
46
+ instance = Alephant::Broker::Request.new("/component/blah.test", '')
47
+ expect(instance.content_type).to eq('text/html')
48
+ end
49
+
50
+ end
51
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alephant::Broker::ResponseFactory do
4
+
5
+ describe "#response_from(request)" do
6
+ let (:request) { double("Alephant::Broker::Request") }
7
+
8
+ it "should return as asset response" do
9
+ instance = Alephant::Broker::ResponseFactory.new({})
10
+ allow(request).to receive(:type).and_return(:asset)
11
+
12
+ Alephant::Broker::AssetResponse.any_instance.stub(:initialize).with(request, {})
13
+ expect(instance.response_from(request)).to be_a Alephant::Broker::AssetResponse
14
+ end
15
+
16
+ it "should return a status response" do
17
+ allow(request).to receive(:type).and_return(:status)
18
+ response = subject.response_from(request)
19
+ expect(response.status).to eq(200)
20
+ end
21
+
22
+ it "should return a 404 response" do
23
+ allow(request).to receive(:type).and_return(:notfound)
24
+ response = subject.response_from(request)
25
+ expect(response.status).to eq(404)
26
+ end
27
+
28
+ it "should return a 500 response" do
29
+ allow(request).to receive(:type).and_return(:error)
30
+ response = subject.response_from(request)
31
+ expect(response.status).to eq(500)
32
+ end
33
+
34
+ end
35
+ end
metadata CHANGED
@@ -1,169 +1,197 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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: 2014-02-20 00:00:00.000000000 Z
11
+ date: 2014-02-24 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: bundler
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: '1.5'
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: '1.5'
123
+ prerelease: false
124
+ type: :development
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
127
132
  requirement: !ruby/object:Gem::Requirement
128
133
  requirements:
129
134
  - - '>='
130
135
  - !ruby/object:Gem::Version
131
136
  version: '0'
132
- type: :development
133
137
  prerelease: false
138
+ type: :development
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack-test
134
141
  version_requirements: !ruby/object:Gem::Requirement
135
142
  requirements:
136
143
  - - '>='
137
144
  - !ruby/object:Gem::Version
138
145
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: alephant-lookup
141
146
  requirement: !ruby/object:Gem::Requirement
142
147
  requirements:
143
148
  - - '>='
144
149
  - !ruby/object:Gem::Version
145
150
  version: '0'
146
- type: :runtime
147
151
  prerelease: false
152
+ type: :development
153
+ - !ruby/object:Gem::Dependency
154
+ name: alephant-lookup
148
155
  version_requirements: !ruby/object:Gem::Requirement
149
156
  requirements:
150
157
  - - '>='
151
158
  - !ruby/object:Gem::Version
152
159
  version: '0'
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ prerelease: false
166
+ type: :runtime
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: alephant-cache
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
155
174
  requirement: !ruby/object:Gem::Requirement
156
175
  requirements:
157
176
  - - '>='
158
177
  - !ruby/object:Gem::Version
159
178
  version: '0'
160
- type: :runtime
161
179
  prerelease: false
180
+ type: :runtime
181
+ - !ruby/object:Gem::Dependency
182
+ name: alephant-logger
162
183
  version_requirements: !ruby/object:Gem::Requirement
163
184
  requirements:
164
185
  - - '>='
165
186
  - !ruby/object:Gem::Version
166
187
  version: '0'
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ prerelease: false
194
+ type: :runtime
167
195
  description: Brokers requests for alephant components
168
196
  email:
169
197
  - stevenmajack@gmail.com
@@ -172,6 +200,8 @@ extensions: []
172
200
  extra_rdoc_files: []
173
201
  files:
174
202
  - .gitignore
203
+ - .ruby-version
204
+ - .travis.yml
175
205
  - Gemfile
176
206
  - Guardfile
177
207
  - LICENSE.txt
@@ -188,12 +218,16 @@ files:
188
218
  - lib/alephant/broker/models/response/asset_response.rb
189
219
  - lib/alephant/broker/models/response_factory.rb
190
220
  - lib/alephant/broker/version.rb
221
+ - spec/asset_response_spec.rb
222
+ - spec/rack_spec.rb
223
+ - spec/request_spec.rb
224
+ - spec/response_factory_spec.rb
191
225
  - spec/spec_helper.rb
192
226
  homepage: https://github.com/BBC-News/alephant-broker
193
227
  licenses:
194
228
  - MIT
195
229
  metadata: {}
196
- post_install_message:
230
+ post_install_message:
197
231
  rdoc_options: []
198
232
  require_paths:
199
233
  - lib
@@ -208,10 +242,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
242
  - !ruby/object:Gem::Version
209
243
  version: '0'
210
244
  requirements: []
211
- rubyforge_project:
212
- rubygems_version: 2.0.3
213
- signing_key:
245
+ rubyforge_project:
246
+ rubygems_version: 2.1.9
247
+ signing_key:
214
248
  specification_version: 4
215
249
  summary: Brokers requests for alephant components
216
250
  test_files:
251
+ - spec/asset_response_spec.rb
252
+ - spec/rack_spec.rb
253
+ - spec/request_spec.rb
254
+ - spec/response_factory_spec.rb
217
255
  - spec/spec_helper.rb