apill 1.1.0 → 1.1.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4978fd82cf24f21bcbedf34a5086842fd0c82f8a
|
4
|
+
data.tar.gz: 45e18274d4ed90d8d7d377c2746eb0a858ff311d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 687871c4ad8068fddd8317dc19845677ec74bba3b70700a2a2b1eace782738984944bc440ba864b9fc7eef27d237896856a5de433fdba7e9f94bc34d8d72db28
|
7
|
+
data.tar.gz: c22b38830eeaab0fae13aa878258eb4acc7e913cd179a2174da2e09669ed12717f0bbfdac2c5a50730a107eb756833e258243efec5f88ddd1554aca5a7b46b48
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Apill
|
2
|
+
module Matchers
|
3
|
+
class SubdomainMatcher
|
4
|
+
def initialize(subdomain: 'api')
|
5
|
+
self.subdomain = subdomain
|
6
|
+
end
|
7
|
+
|
8
|
+
def matches?(request)
|
9
|
+
request.subdomains.first == subdomain
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
attr_accessor :subdomain
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -4,12 +4,12 @@ module Apill
|
|
4
4
|
module Responses
|
5
5
|
class InvalidApiRequestResponse
|
6
6
|
def self.call(env)
|
7
|
-
error = Apill::Errors::InvalidApiRequestError.new
|
7
|
+
error = Apill::Errors::InvalidApiRequestError.new(accept_header: env['HTTP_ACCEPT'])
|
8
8
|
|
9
9
|
[
|
10
10
|
error.http_status, # HTTP Status Code
|
11
11
|
{}, # Response Headers
|
12
|
-
error.to_json,
|
12
|
+
[ error.to_json ], # Message
|
13
13
|
]
|
14
14
|
end
|
15
15
|
end
|
data/lib/apill/version.rb
CHANGED
data/lib/apill.rb
CHANGED
@@ -3,5 +3,6 @@ require 'apill/version'
|
|
3
3
|
require 'apill/matchers/accept_header_matcher'
|
4
4
|
require 'apill/matchers/invalid_api_request_matcher'
|
5
5
|
require 'apill/matchers/version_matcher'
|
6
|
+
require 'apill/matchers/subdomain_matcher'
|
6
7
|
|
7
8
|
require 'apill/responses/invalid_api_request_response'
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'rspectacular'
|
3
|
+
require 'apill/matchers/subdomain_matcher'
|
4
|
+
|
5
|
+
module Apill
|
6
|
+
module Matchers
|
7
|
+
describe SubdomainMatcher do
|
8
|
+
it 'matches if the subdomain is API' do
|
9
|
+
request = OpenStruct.new(subdomains: [ 'api' ])
|
10
|
+
|
11
|
+
matcher = SubdomainMatcher.new
|
12
|
+
|
13
|
+
expect(matcher.matches?(request)).to be_truthy
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'matches if the first subdomain is API' do
|
17
|
+
request = OpenStruct.new(subdomains: [ 'api', 'matrix' ])
|
18
|
+
|
19
|
+
matcher = SubdomainMatcher.new
|
20
|
+
|
21
|
+
expect(matcher.matches?(request)).to be_truthy
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'does not match if the first subdomain is not API' do
|
25
|
+
request = OpenStruct.new(subdomains: [ 'matrix' ])
|
26
|
+
|
27
|
+
matcher = SubdomainMatcher.new
|
28
|
+
|
29
|
+
expect(matcher.matches?(request)).to be_falsey
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'allows the matched subdomain to be specified' do
|
33
|
+
request = OpenStruct.new(subdomains: [ 'matrix' ])
|
34
|
+
|
35
|
+
matcher = SubdomainMatcher.new(subdomain: 'matrix')
|
36
|
+
|
37
|
+
expect(matcher.matches?(request)).to be_truthy
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apill
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jfelchner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: human_error
|
@@ -69,6 +69,7 @@ files:
|
|
69
69
|
- lib/apill/matchers/accept_header_matcher.rb
|
70
70
|
- lib/apill/matchers/generic_matcher.rb
|
71
71
|
- lib/apill/matchers/invalid_api_request_matcher.rb
|
72
|
+
- lib/apill/matchers/subdomain_matcher.rb
|
72
73
|
- lib/apill/matchers/version_matcher.rb
|
73
74
|
- lib/apill/responses/invalid_api_request_response.rb
|
74
75
|
- lib/apill/version.rb
|
@@ -76,6 +77,7 @@ files:
|
|
76
77
|
- spec/lib/apill/errors/invalid_api_request_error_spec.rb
|
77
78
|
- spec/lib/apill/matchers/accept_header_matcher_spec.rb
|
78
79
|
- spec/lib/apill/matchers/invalid_api_request_matcher_spec.rb
|
80
|
+
- spec/lib/apill/matchers/subdomain_matcher_spec.rb
|
79
81
|
- spec/lib/apill/matchers/version_matcher_spec.rb
|
80
82
|
homepage: https://github.com/jfelchner/apill
|
81
83
|
licenses: []
|
@@ -106,5 +108,6 @@ test_files:
|
|
106
108
|
- spec/lib/apill/errors/invalid_api_request_error_spec.rb
|
107
109
|
- spec/lib/apill/matchers/accept_header_matcher_spec.rb
|
108
110
|
- spec/lib/apill/matchers/invalid_api_request_matcher_spec.rb
|
111
|
+
- spec/lib/apill/matchers/subdomain_matcher_spec.rb
|
109
112
|
- spec/lib/apill/matchers/version_matcher_spec.rb
|
110
113
|
has_rdoc:
|