parliament-ruby 0.6.2 → 0.6.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/README.md +12 -0
- data/lib/parliament/request.rb +35 -5
- data/lib/parliament/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 581a69e9850b75eef39d684fd40f5347ebcf8bb1
|
4
|
+
data.tar.gz: f28f46585c4dc4cfd9f14735918804e184367d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e1f64b23a425ee4e1b9c4a816eeb1f583a7c84a382010b0da35c6ef2dfcb5fc5ea0fc5a4bb23764b8b50650edcb5985b718e918bca9b3192137543930d9217c
|
7
|
+
data.tar.gz: '08882fbca6ac37527cd83420cb0a6d1a8bbf120db74e73ebdc8114548b40110d988948fdeaf37c97e803f5d791adf15d81d0cf8a7813080462cfe6b9d9c35cc8'
|
data/README.md
CHANGED
@@ -98,7 +98,19 @@ parliament.parties('123').people.current
|
|
98
98
|
parliament.people('123').letters('456')
|
99
99
|
```
|
100
100
|
|
101
|
+
### Setting headers
|
101
102
|
|
103
|
+
#### Setting headers 'globally'
|
104
|
+
Within the code you can set global headers using the following snippet.
|
105
|
+
```
|
106
|
+
Parliament::Request.headers = { 'Accept' => 'Test' }
|
107
|
+
|
108
|
+
# The headers should be set for all new objects
|
109
|
+
Parliament::Request.new.headers #=> { 'Accept' => 'Test' }
|
110
|
+
|
111
|
+
# You can still override the headers on an instance by instance basis
|
112
|
+
Parliament::Request.new(headers: { 'Accept' => 'Test2' }).headers #=> { 'Accept' => 'Test2' }
|
113
|
+
```
|
102
114
|
### Methods
|
103
115
|
[parliament-ruby][parliament-ruby] comes with the following common methods:
|
104
116
|
|
data/lib/parliament/request.rb
CHANGED
@@ -5,14 +5,15 @@ module Parliament
|
|
5
5
|
# @since 0.1.0
|
6
6
|
#
|
7
7
|
# @attr_reader [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
|
8
|
+
# @attr_reader [Hash] headers the headers being sent in the request.
|
8
9
|
class Request
|
9
|
-
attr_reader :base_url
|
10
|
+
attr_reader :base_url, :headers
|
10
11
|
|
11
12
|
# Creates a new instance of Parliament::Request.
|
12
13
|
#
|
13
14
|
# An interesting note for #initialize is that setting base_url on the class, or using the environment variable
|
14
15
|
# PARLIAMENT_BASE_URL means you don't need to pass in a base_url. You can pass one anyway to override the
|
15
|
-
# environment variable or class parameter.
|
16
|
+
# environment variable or class parameter. Similarly, headers can be set by either settings the headers on the class, or passing headers in.
|
16
17
|
#
|
17
18
|
# @example Setting the base_url on the class
|
18
19
|
# Parliament::Request.base_url = 'http://example.com'
|
@@ -35,10 +36,27 @@ module Parliament
|
|
35
36
|
#
|
36
37
|
# Parliament::Request.new(base_url: 'http://example.com').base_url #=> 'http://example.com'
|
37
38
|
#
|
39
|
+
# @example Setting the headers on the class
|
40
|
+
# Parliament::Request.headers = { 'Accept' => 'Test' }
|
41
|
+
#
|
42
|
+
# Parliament::Request.new.headers #=> '{ 'Accept' => 'Test' }
|
43
|
+
#
|
44
|
+
# @example Setting the headers via a parameter
|
45
|
+
# Parliament::Request.headers #=> nil
|
46
|
+
#
|
47
|
+
# Parliament::Request.new(headers: '{ 'Accept' => 'Test' }).headers #=> { 'Accept' => 'Test' }
|
48
|
+
#
|
49
|
+
# @example Overriding the headers via a parameter
|
50
|
+
# Parliament::Request.headers = { 'Accept' => 'Test' }
|
51
|
+
#
|
52
|
+
# Parliament::Request.new(headers: '{ 'Accept' => 'Test2' }).headers #=> { 'Accept' => 'Test2' }
|
53
|
+
#
|
38
54
|
# @param [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
|
39
|
-
|
55
|
+
# @param [Hash] headers the headers being sent in the request.
|
56
|
+
def initialize(base_url: nil, headers: nil)
|
40
57
|
@endpoint_parts = []
|
41
58
|
@base_url = base_url || self.class.base_url || ENV['PARLIAMENT_BASE_URL']
|
59
|
+
@headers = headers || self.class.headers || {}
|
42
60
|
end
|
43
61
|
|
44
62
|
# Overrides ruby's method_missing to allow creation of URLs through method calls.
|
@@ -113,7 +131,7 @@ module Parliament
|
|
113
131
|
|
114
132
|
net_response = http.start do |h|
|
115
133
|
api_request = Net::HTTP::Get.new(endpoint_uri.request_uri)
|
116
|
-
api_request
|
134
|
+
add_headers(api_request)
|
117
135
|
|
118
136
|
h.request api_request
|
119
137
|
end
|
@@ -126,8 +144,20 @@ module Parliament
|
|
126
144
|
private
|
127
145
|
|
128
146
|
# @attr [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
|
147
|
+
# @attr [Hash] headers the headers being sent in the request.
|
129
148
|
class << self
|
130
|
-
attr_accessor :base_url
|
149
|
+
attr_accessor :base_url, :headers
|
150
|
+
end
|
151
|
+
|
152
|
+
def default_headers
|
153
|
+
{ 'Accept' => 'application/n-triples' }
|
154
|
+
end
|
155
|
+
|
156
|
+
def add_headers(request)
|
157
|
+
headers = default_headers.merge(@headers)
|
158
|
+
headers.each do |key, value|
|
159
|
+
request.add_field(key, value)
|
160
|
+
end
|
131
161
|
end
|
132
162
|
|
133
163
|
def api_endpoint
|
data/lib/parliament/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parliament-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Rayner
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grom
|