alephant-broker 0.0.2 → 0.0.3
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/.gitignore +0 -1
- data/.ruby-version +1 -0
- data/.travis.yml +9 -0
- data/Rakefile +8 -2
- data/alephant-broker.gemspec +2 -0
- data/lib/alephant/broker/app.rb +3 -0
- data/lib/alephant/broker/errors/invalid_cache_key.rb +4 -0
- data/lib/alephant/broker/models/request.rb +9 -3
- data/lib/alephant/broker/models/request_handler.rb +2 -0
- data/lib/alephant/broker/models/response/asset_response.rb +10 -3
- data/lib/alephant/broker/models/response_factory.rb +1 -3
- data/lib/alephant/broker/version.rb +1 -1
- data/spec/asset_response_spec.rb +46 -0
- data/spec/rack_spec.rb +72 -0
- data/spec/request_spec.rb +51 -0
- data/spec/response_factory_spec.rb +35 -0
- metadata +78 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62ea8a88fdcc92e2e8d8cacf3b7b35e4dc3077d0
|
4
|
+
data.tar.gz: e58c67bdb11c2b4028bb897337f795ca13e9a48f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4a00e454e3dd9ea1b6ca4bfd8c62e99df6791891c30873153a1546254e29c679e4145751cb7371f46da59f317c583f5a35231650d954fb863b97d7a6dcbef99
|
7
|
+
data.tar.gz: 2dbbb0dbdd399039794d5e72f120d1901087506e544384ada28c627422e7e2639dc1eee9b507e68925e06e82d0ffa8fba5b6db05eaa5f3f32f44cd49492bb8e0
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jruby-1.7.9
|
data/.travis.yml
ADDED
data/Rakefile
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
-
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
2
2
|
|
3
|
-
require
|
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
|
data/alephant-broker.gemspec
CHANGED
@@ -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
|
data/lib/alephant/broker/app.rb
CHANGED
@@ -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
|
@@ -1,8 +1,10 @@
|
|
1
|
-
require '
|
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]
|
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 =>
|
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
|
-
|
23
|
+
rescue AWS::S3::Errors::NoSuchKey, InvalidCacheKey => e
|
24
|
+
set_error_for(e, 404)
|
24
25
|
rescue Exception => e
|
25
|
-
|
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)
|
@@ -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.
|
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-
|
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
|
-
|
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
|
-
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '1.5'
|
118
|
-
|
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.
|
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
|