NRB_http_service 0.0.8 → 0.1.0
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 +7 -0
- data/lib/NRB_http_service.rb +13 -5
- data/lib/NRB_http_service/response.rb +1 -1
- data/lib/NRB_http_service/version.rb +1 -1
- data/spec/cases/NRB_http_service/response_spec.rb +4 -4
- data/spec/cases/NRB_http_service/version_spec.rb +30 -0
- data/spec/cases/NRB_http_service_spec.rb +12 -11
- metadata +36 -34
- data/spec/cases/version_spec.rb +0 -14
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 28f5fc0fb9e5b8d3bcc6436c27bae888dfc16128
|
4
|
+
data.tar.gz: f63b0efd8e14a4668e5970d78c6d83b957471b0f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 72a291dee0d0c936753c5695f6de4a1939cc354f8cdae9550b10d7327285da0fda27d493902a4ae1f40ebbcebe81c5baf2e70fe62551a59e97035a7dc427f759
|
7
|
+
data.tar.gz: 57c43f46501c6e13cf2cb3493820b4980ed0c5897efc66a7b2969dc2af78a12e3042fe55fb08b80f8284e97655455f210fde16e8eda104c4ec578138e25dd040
|
data/lib/NRB_http_service.rb
CHANGED
@@ -39,22 +39,30 @@ module NRB
|
|
39
39
|
|
40
40
|
|
41
41
|
def make_request
|
42
|
-
|
43
|
-
|
44
|
-
args = @args.merge( { body: response.body, headers: response.headers, status: response.status.to_i } )
|
45
|
-
@response_class.new args
|
42
|
+
response = connection.send verb, url, params
|
43
|
+
response_class.new response_args(response)
|
46
44
|
rescue Faraday::Error::ParsingError => e
|
47
45
|
self.class.default_response_class.new body: {error: e.message}, status: 500
|
48
46
|
end
|
49
47
|
|
50
48
|
private
|
51
49
|
|
52
|
-
attr_reader :params, :verb, :url
|
50
|
+
attr_reader :args, :connection_opts, :params, :response_class, :verb, :url
|
51
|
+
|
52
|
+
def connection
|
53
|
+
self.class.default_http_class.new url, connection_opts, &self.class.faraday_middleware
|
54
|
+
end
|
55
|
+
|
53
56
|
|
54
57
|
def process_args(args)
|
55
58
|
return args unless @verb == :post
|
56
59
|
args.inject("") { |str,pair| str += "#{pair.first}=#{pair.last}&" }.chop
|
57
60
|
end
|
58
61
|
|
62
|
+
|
63
|
+
def response_args(response)
|
64
|
+
args.merge( { body: response.body, headers: response.headers, status: response.status.to_i } )
|
65
|
+
end
|
66
|
+
|
59
67
|
end
|
60
68
|
end
|
@@ -12,11 +12,11 @@ describe NRB::HTTPService::Response do
|
|
12
12
|
let(:status) { 200 }
|
13
13
|
|
14
14
|
it 'correctly answers errored?' do
|
15
|
-
response.
|
15
|
+
expect(response).not_to be_errored
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'correctly answers success?' do
|
19
|
-
response.
|
19
|
+
expect(response).to be_success
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
@@ -26,11 +26,11 @@ describe NRB::HTTPService::Response do
|
|
26
26
|
let(:status) { 900 }
|
27
27
|
|
28
28
|
it 'correctly answers errored?' do
|
29
|
-
response.
|
29
|
+
expect(response).to be_errored
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'correctly answers success?' do
|
33
|
-
response.
|
33
|
+
expect(response).not_to be_success
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe NRB::HTTPService do
|
2
|
+
|
3
|
+
let(:version) { described_class.version }
|
4
|
+
let(:version_constant) { described_class.const_get(:VERSION) }
|
5
|
+
|
6
|
+
it 'responds to :version' do
|
7
|
+
expect(described_class).to respond_to :version
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
it "has a version" do
|
12
|
+
expect(version).not_to be nil
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
it "has a version string" do
|
17
|
+
expect(version).to be_a String
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
it 'has a VERSION constant' do
|
22
|
+
expect(version_constant).not_to be nil
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
it 'responds with the VERSION constant' do
|
27
|
+
expect(described_class.version).to eq(version_constant)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -5,11 +5,11 @@ describe NRB::HTTPService do
|
|
5
5
|
describe 'class methods' do
|
6
6
|
|
7
7
|
it 'has a default middleware' do
|
8
|
-
|
8
|
+
expect(described_class.default_middleware).to be_a(Proc)
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'has a default response class' do
|
12
|
-
|
12
|
+
expect(described_class.default_response_class).to eq NRB::HTTPService::Response
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
@@ -18,25 +18,26 @@ describe NRB::HTTPService do
|
|
18
18
|
|
19
19
|
let(:args) { {} }
|
20
20
|
let(:body) { {} }
|
21
|
-
let(:connection) {
|
21
|
+
let(:connection) { double :connection, verb: connection_response,
|
22
|
+
get: connection_response }
|
22
23
|
let(:connection_response) { double "skal", body: body, headers: headers, status: status }
|
23
24
|
let(:headers) { {} }
|
24
25
|
let(:path) { '/' }
|
25
|
-
let(:response) {
|
26
|
+
let(:response) { described_class.new(path: path, verb: verb).make_request }
|
26
27
|
let(:status) { 200 }
|
27
28
|
let(:verb) { :get }
|
28
29
|
|
29
30
|
context 'successful requests' do
|
30
31
|
|
31
32
|
before do
|
32
|
-
Faraday.
|
33
|
+
allow(Faraday).to receive(:new).and_return(connection)
|
33
34
|
end
|
34
35
|
it 'returns a Response object' do
|
35
|
-
response.
|
36
|
+
expect(response).to be_a described_class.default_response_class
|
36
37
|
end
|
37
38
|
|
38
39
|
it 'resuces with an successful Response object' do
|
39
|
-
response.
|
40
|
+
expect(response).to be_success
|
40
41
|
end
|
41
42
|
|
42
43
|
end
|
@@ -48,19 +49,19 @@ describe NRB::HTTPService do
|
|
48
49
|
let(:message) { "!Blark!" }
|
49
50
|
|
50
51
|
before do
|
51
|
-
Faraday.
|
52
|
+
allow(Faraday).to receive(:new).and_raise(error)
|
52
53
|
end
|
53
54
|
|
54
55
|
it 'resuces with a Response object' do
|
55
|
-
response.
|
56
|
+
expect(response).to be_a(described_class.default_response_class)
|
56
57
|
end
|
57
58
|
|
58
59
|
it 'resuces with an errored Response object' do
|
59
|
-
response.
|
60
|
+
expect(response).to be_errored
|
60
61
|
end
|
61
62
|
|
62
63
|
it 'gives you the error' do
|
63
|
-
response.body[:error].
|
64
|
+
expect(response.body[:error]).to eq message
|
64
65
|
end
|
65
66
|
|
66
67
|
end
|
metadata
CHANGED
@@ -1,94 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: NRB_http_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dean Brundage
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-12-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hashie
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
28
39
|
- !ruby/object:Gem::Version
|
29
40
|
version: '0.0'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: guard-rspec
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- - ~>
|
45
|
+
- - "~>"
|
36
46
|
- !ruby/object:Gem::Version
|
37
47
|
version: '2.0'
|
38
48
|
type: :development
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- - ~>
|
52
|
+
- - "~>"
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '2.0'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: rake
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- - ~>
|
59
|
+
- - "~>"
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '10.0'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- - ~>
|
66
|
+
- - "~>"
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '10.0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rspec
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- - ~>
|
73
|
+
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '2.0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- - ~>
|
80
|
+
- - "~>"
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '2.0'
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: rb-inotify
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
|
-
- - ~>
|
87
|
+
- - "~>"
|
84
88
|
- !ruby/object:Gem::Version
|
85
89
|
version: '0.0'
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- - ~>
|
94
|
+
- - "~>"
|
92
95
|
- !ruby/object:Gem::Version
|
93
96
|
version: '0.0'
|
94
97
|
description: Used in some of New Republic Brewing's gems
|
@@ -103,37 +106,36 @@ files:
|
|
103
106
|
- lib/NRB_http_service.rb
|
104
107
|
- lib/NRB_http_service/response.rb
|
105
108
|
- lib/NRB_http_service/version.rb
|
106
|
-
- spec/cases/NRB_http_service_spec.rb
|
107
109
|
- spec/cases/NRB_http_service/response_spec.rb
|
108
|
-
- spec/cases/version_spec.rb
|
110
|
+
- spec/cases/NRB_http_service/version_spec.rb
|
111
|
+
- spec/cases/NRB_http_service_spec.rb
|
109
112
|
- spec/spec_helper.rb
|
110
113
|
homepage: https://github.com/NewRepublicBrewing/http-service
|
111
|
-
licenses:
|
114
|
+
licenses:
|
115
|
+
- GPL-3
|
116
|
+
metadata: {}
|
112
117
|
post_install_message:
|
113
118
|
rdoc_options: []
|
114
119
|
require_paths:
|
115
120
|
- lib
|
116
121
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
122
|
requirements:
|
119
|
-
- -
|
123
|
+
- - ">="
|
120
124
|
- !ruby/object:Gem::Version
|
121
125
|
version: '0'
|
122
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
127
|
requirements:
|
125
|
-
- -
|
128
|
+
- - ">="
|
126
129
|
- !ruby/object:Gem::Version
|
127
130
|
version: '0'
|
128
131
|
requirements: []
|
129
132
|
rubyforge_project: NRB_http_service
|
130
|
-
rubygems_version:
|
133
|
+
rubygems_version: 2.5.2
|
131
134
|
signing_key:
|
132
|
-
specification_version:
|
135
|
+
specification_version: 4
|
133
136
|
summary: HTTP Fetcher Gem based on Faraday
|
134
137
|
test_files:
|
135
138
|
- spec/cases/NRB_http_service_spec.rb
|
136
139
|
- spec/cases/NRB_http_service/response_spec.rb
|
137
|
-
- spec/cases/version_spec.rb
|
140
|
+
- spec/cases/NRB_http_service/version_spec.rb
|
138
141
|
- spec/spec_helper.rb
|
139
|
-
has_rdoc:
|
data/spec/cases/version_spec.rb
DELETED