parliament-ruby 0.7.4 → 0.7.5.pre
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/lib/parliament.rb +0 -3
- data/lib/parliament/builder.rb +0 -1
- data/lib/parliament/builder/base_response_builder.rb +11 -2
- data/lib/parliament/request/base_request.rb +34 -23
- data/lib/parliament/request/url_request.rb +23 -5
- data/lib/parliament/response.rb +4 -128
- data/lib/parliament/response/base_response.rb +18 -0
- data/lib/parliament/version.rb +1 -1
- data/parliament-ruby.gemspec +1 -2
- metadata +20 -36
- data/lib/parliament/builder/ntriple_response_builder.rb +0 -25
- data/lib/parliament/decorator.rb +0 -27
- data/lib/parliament/decorator/constituency_area.rb +0 -27
- data/lib/parliament/decorator/constituency_group.rb +0 -92
- data/lib/parliament/decorator/contact_point.rb +0 -48
- data/lib/parliament/decorator/gender.rb +0 -13
- data/lib/parliament/decorator/gender_identity.rb +0 -13
- data/lib/parliament/decorator/house.rb +0 -41
- data/lib/parliament/decorator/house_incumbency.rb +0 -48
- data/lib/parliament/decorator/house_seat.rb +0 -27
- data/lib/parliament/decorator/incumbency.rb +0 -55
- data/lib/parliament/decorator/party.rb +0 -27
- data/lib/parliament/decorator/party_membership.rb +0 -34
- data/lib/parliament/decorator/person.rb +0 -188
- data/lib/parliament/decorator/postal_address.rb +0 -26
- data/lib/parliament/decorator/seat_incumbency.rb +0 -69
- data/lib/parliament/utils.rb +0 -135
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0a79edd03b21e7446afd20f132813f37b09cfacc
|
|
4
|
+
data.tar.gz: dfbc9570cea9cc014855cb05ffd0aa763f47edde
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d75ea0f2608a5ad2adf3f9860d7b22c640d631f1b8b3ef6e47f522433e9e6ee5c2025bbd74c773e23f333e1ee6c5378d526c5eabc5435fdba43278c132b345ce
|
|
7
|
+
data.tar.gz: 876e757ac2e8dfcdda1bbc8f336301f043b340549c670a7a62622d5d8fc11464b27de3d63f5f9e9ba2bf418e97f9cc681782b75aa87886ca3e73b79ceb731fea
|
data/lib/parliament.rb
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
require 'net/http'
|
|
2
|
-
require 'grom'
|
|
3
2
|
|
|
4
3
|
require 'parliament/version'
|
|
5
4
|
require 'parliament/request'
|
|
6
5
|
require 'parliament/response'
|
|
7
|
-
require 'parliament/utils'
|
|
8
|
-
require 'parliament/decorator'
|
|
9
6
|
require 'parliament/builder'
|
|
10
7
|
|
|
11
8
|
require 'parliament/network_error'
|
data/lib/parliament/builder.rb
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
module Parliament
|
|
2
2
|
module Builder
|
|
3
|
+
# Base response builder, allowing the user to return the body of an HTTPResponse.
|
|
4
|
+
# @since 0.7.5
|
|
3
5
|
class BaseResponseBuilder
|
|
4
|
-
|
|
6
|
+
# Creates a new BaseReponseBuilder.
|
|
7
|
+
# @param [HTTPResponse] response an HTTP response.
|
|
8
|
+
# @param [Module] decorators a namespace which contains modules used to decorate the objects we receive. It is not used directly by the BaseResponseBuilder, but is there for API completeness.
|
|
9
|
+
def initialize(response:, decorators: nil)
|
|
5
10
|
@response = response
|
|
11
|
+
_ = decorators
|
|
6
12
|
end
|
|
7
13
|
|
|
14
|
+
# Builds a Parliament::Response::BaseResponse.
|
|
15
|
+
#
|
|
16
|
+
# @return [Parliament::Response::Base::Response] a Parliament::Response::BaseResponse containing the HTTPResponse.
|
|
8
17
|
def build
|
|
9
|
-
@response
|
|
18
|
+
Parliament::Response::BaseResponse.new(@response)
|
|
10
19
|
end
|
|
11
20
|
end
|
|
12
21
|
end
|
|
@@ -1,78 +1,89 @@
|
|
|
1
1
|
module Parliament
|
|
2
2
|
module Request
|
|
3
|
+
# Base request object, allowing the user to make a request to an API.
|
|
4
|
+
#
|
|
5
|
+
# @since 0.7.5
|
|
6
|
+
#
|
|
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.
|
|
3
9
|
class BaseRequest
|
|
4
10
|
attr_reader :base_url, :headers
|
|
5
|
-
# Creates a new instance of Parliament::Request.
|
|
11
|
+
# Creates a new instance of Parliament::Request::BaseRequest.
|
|
6
12
|
#
|
|
7
13
|
# An interesting note for #initialize is that setting base_url on the class, or using the environment variable
|
|
8
14
|
# PARLIAMENT_BASE_URL means you don't need to pass in a base_url. You can pass one anyway to override the
|
|
9
15
|
# environment variable or class parameter. Similarly, headers can be set by either settings the headers on the class, or passing headers in.
|
|
10
16
|
#
|
|
11
17
|
# @example Setting the base_url on the class
|
|
12
|
-
# Parliament::Request.base_url = 'http://example.com'
|
|
18
|
+
# Parliament::Request::BaseRequest.base_url = 'http://example.com'
|
|
13
19
|
#
|
|
14
|
-
# Parliament::Request.new.base_url #=> 'http://example.com'
|
|
20
|
+
# Parliament::Request::BaseRequest.new.base_url #=> 'http://example.com'
|
|
15
21
|
#
|
|
16
22
|
# @example Setting the base_url via environment variable
|
|
17
23
|
# ENV['PARLIAMENT_BASE_URL'] #=> 'http://test.com'
|
|
18
24
|
#
|
|
19
|
-
# Parliament::Request.new.base_url #=> 'http://test.com'
|
|
25
|
+
# Parliament::Request::BaseRequest.new.base_url #=> 'http://test.com'
|
|
20
26
|
#
|
|
21
27
|
# @example Setting the base_url via a parameter
|
|
22
|
-
# Parliament::Request.base_url #=> nil
|
|
28
|
+
# Parliament::Request::BaseRequest.base_url #=> nil
|
|
23
29
|
# ENV['PARLIAMENT_BASE_URL'] #=> nil
|
|
24
30
|
#
|
|
25
|
-
# Parliament::Request.new(base_url: 'http://example.com').base_url #=> 'http://example.com'
|
|
31
|
+
# Parliament::Request::BaseRequest.new(base_url: 'http://example.com').base_url #=> 'http://example.com'
|
|
26
32
|
#
|
|
27
33
|
# @example Overriding the base_url via a parameter
|
|
28
34
|
# ENV['PARLIAMENT_BASE_URL'] #=> 'http://test.com'
|
|
29
35
|
#
|
|
30
|
-
# Parliament::Request.new(base_url: 'http://example.com').base_url #=> 'http://example.com'
|
|
36
|
+
# Parliament::Request::BaseRequest.new(base_url: 'http://example.com').base_url #=> 'http://example.com'
|
|
31
37
|
#
|
|
32
38
|
# @example Setting the headers on the class
|
|
33
|
-
# Parliament::Request.headers = { 'Accept' => 'Test' }
|
|
39
|
+
# Parliament::Request::BaseRequest.headers = { 'Accept' => 'Test' }
|
|
34
40
|
#
|
|
35
|
-
# Parliament::Request.new.headers #=> '{ 'Accept' => 'Test' }
|
|
41
|
+
# Parliament::Request::BaseRequest.new.headers #=> '{ 'Accept' => 'Test' }
|
|
36
42
|
#
|
|
37
43
|
# @example Setting the headers via a parameter
|
|
38
|
-
# Parliament::Request.headers #=> nil
|
|
44
|
+
# Parliament::Request::BaseRequest.headers #=> nil
|
|
39
45
|
#
|
|
40
|
-
# Parliament::Request.new(headers: '{ 'Accept' => 'Test' }).headers #=> { 'Accept' => 'Test' }
|
|
46
|
+
# Parliament::Request::BaseRequest.new(headers: '{ 'Accept' => 'Test' }).headers #=> { 'Accept' => 'Test' }
|
|
41
47
|
#
|
|
42
48
|
# @example Overriding the headers via a parameter
|
|
43
|
-
# Parliament::Request.headers = { 'Accept' => 'Test' }
|
|
49
|
+
# Parliament::Request::BaseRequest.headers = { 'Accept' => 'Test' }
|
|
44
50
|
#
|
|
45
|
-
# Parliament::Request.new(headers: '{ 'Accept' => 'Test2' }).headers #=> { 'Accept' => 'Test2' }
|
|
51
|
+
# Parliament::Request::BaseRequest.new(headers: '{ 'Accept' => 'Test2' }).headers #=> { 'Accept' => 'Test2' }
|
|
46
52
|
#
|
|
47
53
|
# @param [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
|
|
48
54
|
# @param [Hash] headers the headers being sent in the request.
|
|
49
|
-
|
|
55
|
+
# @param [Parliament::Builder] builder the builder to use in order to build a response.
|
|
56
|
+
# @params [Module] decorators the decorator module to use in order to provide possible alias methods for any objects created by the builder.
|
|
57
|
+
def initialize(base_url: nil, headers: nil, builder: nil, decorators: nil)
|
|
50
58
|
@base_url = base_url || self.class.base_url
|
|
51
59
|
@headers = headers || self.class.headers || {}
|
|
52
60
|
@builder = builder || Parliament::Builder::BaseResponseBuilder
|
|
61
|
+
@decorators = decorators
|
|
53
62
|
end
|
|
54
63
|
|
|
55
|
-
#
|
|
64
|
+
# Makes an HTTP GET request and process results into a response.
|
|
56
65
|
#
|
|
57
66
|
# @example HTTP GET request
|
|
58
|
-
# request = Parliament::Request.new(base_url: 'http://example.com'
|
|
67
|
+
# request = Parliament::Request::BaseRequest.new(base_url: 'http://example.com/people/123'
|
|
59
68
|
#
|
|
60
|
-
# # url: http://example.com/people/
|
|
61
|
-
#
|
|
69
|
+
# # url: http://example.com/people/123
|
|
70
|
+
#
|
|
71
|
+
# response = request.get #=> #<Parliament::Response::BaseResponse ...>
|
|
62
72
|
#
|
|
63
73
|
# @example HTTP GET request with URI encoded form values
|
|
64
|
-
# request = Parliament::Request.new(base_url: 'http://example.com')
|
|
74
|
+
# request = Parliament::Request.new(base_url: 'http://example.com/people/current')
|
|
65
75
|
#
|
|
66
76
|
# # url: http://example.com/people/current?limit=10&page=4&lang=en-gb
|
|
67
|
-
#
|
|
77
|
+
#
|
|
78
|
+
# response = request.get({ limit: 10, page: 4, lang: 'en-gb' }) #=> #<Parliament::Response::BaseResponse ...>
|
|
68
79
|
#
|
|
69
80
|
# @raise [Parliament::ServerError] when the server responds with a 5xx status code.
|
|
70
81
|
# @raise [Parliament::ClientError] when the server responds with a 4xx status code.
|
|
71
|
-
# @raise [Parliament::NoContentResponseError] when the
|
|
82
|
+
# @raise [Parliament::NoContentResponseError] when the response body is empty.
|
|
72
83
|
#
|
|
73
84
|
# @param [Hash] params (optional) additional URI encoded form values to be added to the URI.
|
|
74
85
|
#
|
|
75
|
-
# @return [Parliament::Response] a Parliament::Response object containing all of the
|
|
86
|
+
# @return [Parliament::Response::BaseResponse] a Parliament::Response::BaseResponse object containing all of the data returned from the URL.
|
|
76
87
|
def get(params: nil)
|
|
77
88
|
endpoint_uri = URI.parse(query_url)
|
|
78
89
|
endpoint_uri.query = URI.encode_www_form(params.to_a) unless params.nil?
|
|
@@ -101,7 +112,7 @@ module Parliament
|
|
|
101
112
|
end
|
|
102
113
|
|
|
103
114
|
def build_response(net_response)
|
|
104
|
-
@builder.new(net_response).build
|
|
115
|
+
@builder.new(response: net_response, decorators: @decorators).build
|
|
105
116
|
end
|
|
106
117
|
|
|
107
118
|
def query_url
|
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
module Parliament
|
|
2
2
|
module Request
|
|
3
|
+
# URL request object, allowing the user to build a URL to make a request to an API.
|
|
4
|
+
#
|
|
5
|
+
# @since 0.7.5
|
|
6
|
+
#
|
|
7
|
+
# @attr_reader [String] base_url the endpoint for our API which we will build our requests on. (expected: http://example.com - without the trailing slash).
|
|
8
|
+
# @attr_reader [Hash] headers the headers being sent in the request.
|
|
3
9
|
class UrlRequest < Parliament::Request::BaseRequest
|
|
4
|
-
|
|
10
|
+
# Creates a new instance of Parliament::Request::UrlRequest.
|
|
11
|
+
#
|
|
12
|
+
# @see Parliament::Request::BaseRequest#initialize.
|
|
13
|
+
#
|
|
14
|
+
# @param [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
|
|
15
|
+
# @param [Hash] headers the headers being sent in the request.
|
|
16
|
+
# @param [Parliament::Builder] builder the builder to use in order to build a response.
|
|
17
|
+
# @param [Module] decorators the decorator module to use in order to provide possible alias methods for any objects created by the builder.
|
|
18
|
+
# @example Passing headers
|
|
19
|
+
#
|
|
20
|
+
# request = Parliament::Request::UrlRequest.new(base_url: 'http://example.com', headers: { 'Access-Token' => '12345678' })
|
|
21
|
+
# This will create a request with the Access-Token set to 12345678.
|
|
22
|
+
def initialize(base_url: nil, headers: nil, builder: nil, decorators: nil)
|
|
5
23
|
@endpoint_parts = []
|
|
6
24
|
base_url ||= ENV['PARLIAMENT_BASE_URL']
|
|
7
25
|
|
|
@@ -11,19 +29,19 @@ module Parliament
|
|
|
11
29
|
# Overrides ruby's method_missing to allow creation of URLs through method calls.
|
|
12
30
|
#
|
|
13
31
|
# @example Adding a simple URL part
|
|
14
|
-
# request = Parliament::Request.new(base_url: 'http://example.com')
|
|
32
|
+
# request = Parliament::Request::UrlRequest.new(base_url: 'http://example.com')
|
|
15
33
|
#
|
|
16
34
|
# # url: http://example.com/people
|
|
17
35
|
# request.people
|
|
18
36
|
#
|
|
19
37
|
# @example Adding a simple URL part with parameters
|
|
20
|
-
# request = Parliament::Request.new(base_url: 'http://example.com')
|
|
38
|
+
# request = Parliament::Request::UrlRequest.new(base_url: 'http://example.com')
|
|
21
39
|
#
|
|
22
40
|
# # url: http://example.com/people/123456
|
|
23
41
|
# request.people('123456')
|
|
24
42
|
#
|
|
25
43
|
# @example Chaining URL parts and using hyphens
|
|
26
|
-
# request = Parliament::Request.new(base_url: 'http://example.com')
|
|
44
|
+
# request = Parliament::Request::UrlRequest.new(base_url: 'http://example.com')
|
|
27
45
|
#
|
|
28
46
|
# # url: http://example.com/people/123456/foo/bar/hello-world/7890
|
|
29
47
|
# request.people('123456').foo.bar('hello-world', '7890')
|
|
@@ -32,7 +50,7 @@ module Parliament
|
|
|
32
50
|
# @param [Array<Object>] params parameters passed to the specified method (url part).
|
|
33
51
|
# @param [Block] block additional block (kept for compatibility with method_missing API).
|
|
34
52
|
#
|
|
35
|
-
# @return [Parliament::Request] self.
|
|
53
|
+
# @return [Parliament::Request::UrlRequest] self (this is to allow method chaining).
|
|
36
54
|
def method_missing(method, *params, &block)
|
|
37
55
|
@endpoint_parts << method.to_s
|
|
38
56
|
@endpoint_parts << params
|
data/lib/parliament/response.rb
CHANGED
|
@@ -1,131 +1,7 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
|
-
|
|
3
1
|
module Parliament
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# @since 0.1.0
|
|
9
|
-
#
|
|
10
|
-
# @attr_reader [Array<Grom::Node>] nodes Graph nodes.
|
|
11
|
-
class Response
|
|
12
|
-
include Enumerable
|
|
13
|
-
extend Forwardable
|
|
14
|
-
attr_reader :nodes
|
|
15
|
-
def_delegators :@nodes, :size, :each, :select, :map, :select!, :map!, :count, :length, :[], :empty?
|
|
16
|
-
|
|
17
|
-
# @param [Array<Grom::Node>] nodes An array of nodes the response should wrap
|
|
18
|
-
def initialize(nodes)
|
|
19
|
-
@nodes = nodes
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Given our array of Grom::Nodes, filter them into arrays of 'types' of nodes.
|
|
23
|
-
#
|
|
24
|
-
# Note: this method assumes all of your nodes include a #type attribute or are blank nodes.
|
|
25
|
-
#
|
|
26
|
-
# @since 0.2.0
|
|
27
|
-
#
|
|
28
|
-
# @example Filtering for a single type
|
|
29
|
-
# node_1 = Grom::Node.new
|
|
30
|
-
# node_1.instance_variable_set(:type, 'type_1')
|
|
31
|
-
# node_2 = Grom::Node.new
|
|
32
|
-
# node_2.instance_variable_set(:type, 'type_3')
|
|
33
|
-
# node_3 = Grom::Node.new
|
|
34
|
-
# node_3.instance_variable_set(:type, 'type_1')
|
|
35
|
-
# node_4 = Grom::Node.new
|
|
36
|
-
# node_4.instance_variable_set(:type, 'type_2')
|
|
37
|
-
# nodes = [node_1, node_2, node_3, node_4]
|
|
38
|
-
#
|
|
39
|
-
# response = Parliament::Response.new(nodes)
|
|
40
|
-
# response.filter('type_2') #=> [#<Grom::Node @type='type_2'>]
|
|
41
|
-
#
|
|
42
|
-
# @example Filtering for multiple types
|
|
43
|
-
# node_1 = Grom::Node.new
|
|
44
|
-
# node_1.instance_variable_set(:type, 'type_1')
|
|
45
|
-
# node_2 = Grom::Node.new
|
|
46
|
-
# node_2.instance_variable_set(:type, 'type_3')
|
|
47
|
-
# node_3 = Grom::Node.new
|
|
48
|
-
# node_3.instance_variable_set(:type, 'type_1')
|
|
49
|
-
# node_4 = Grom::Node.new
|
|
50
|
-
# node_4.instance_variable_set(:type, 'type_2')
|
|
51
|
-
# nodes = [node_1, node_2, node_3, node_4]
|
|
52
|
-
#
|
|
53
|
-
# response = Parliament::Response.new(nodes)
|
|
54
|
-
# response.filter('type_2', 'type_1') #=> [[#<Grom::Node @type='type_2'>], [#<Grom::Node @type='type_1'>, #<Grom::Node @type='type_1'>]]
|
|
55
|
-
#
|
|
56
|
-
# # Also consider
|
|
57
|
-
# type_2, type_1 = response.filter('type_2', 'type_1')
|
|
58
|
-
# type_2 #=> [#<Grom::Node @type='type_2'>]
|
|
59
|
-
# type_1 #=> [#<Grom::Node @type='type_1'>, #<Grom::Node @type='type_1'>]
|
|
60
|
-
#
|
|
61
|
-
# @example Filtering blank nodes
|
|
62
|
-
# node_1 = Grom::Node.new
|
|
63
|
-
# node_1.instance_variable_set(:type, 'type_1')
|
|
64
|
-
# node_2 = Grom::Node.new
|
|
65
|
-
# node_3 = Grom::Node.new
|
|
66
|
-
# node_3.instance_variable_set(:type, 'type_1')
|
|
67
|
-
# nodes = [node_1, node_2, node_3]
|
|
68
|
-
#
|
|
69
|
-
# response = Parliament::Response.new(nodes)
|
|
70
|
-
# response.filter(Grom::Node::BLANK) #=> [#<Grom::Node>]
|
|
71
|
-
#
|
|
72
|
-
# @param [Array<String>] types An array of type strings that you are looking for.
|
|
73
|
-
# @return [Array<Grom::Node> || Array<*Array<Grom::Node>>] If you pass one type, this returns an Array of Grom::Node objects. If you pass multiple, it returns an array, of arrays of Grom::Node objects.
|
|
74
|
-
def filter(*types)
|
|
75
|
-
filtered_objects = Array.new(types.size) { [] }
|
|
76
|
-
|
|
77
|
-
unless types.empty?
|
|
78
|
-
@nodes.each do |node|
|
|
79
|
-
type_index = node.blank? ? types.index(Grom::Node::BLANK) : types.index(node.type)
|
|
80
|
-
|
|
81
|
-
filtered_objects[type_index] << node unless type_index.nil?
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
result = build_responses(filtered_objects)
|
|
86
|
-
|
|
87
|
-
types.size == 1 ? result.first : result
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
# Sort the Parliament::Response nodes in ascending order by a set of attributes on each node.
|
|
91
|
-
#
|
|
92
|
-
# @see Parliament::Utils.sort_by
|
|
93
|
-
#
|
|
94
|
-
# @since 0.5.0
|
|
95
|
-
#
|
|
96
|
-
# @param [Array<Symbol>] parameters Attributes to sort on - left to right.
|
|
97
|
-
# @return [Array<Grom::Node>] A sorted array of nodes.
|
|
98
|
-
def sort_by(*parameters)
|
|
99
|
-
Parliament::Utils.sort_by({
|
|
100
|
-
list: @nodes,
|
|
101
|
-
parameters: parameters
|
|
102
|
-
})
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Sort the Parliament::Response nodes in descending order by a set of attributes on each node.
|
|
106
|
-
#
|
|
107
|
-
# @see Parliament::Utils.reverse_sort_by
|
|
108
|
-
#
|
|
109
|
-
# @since 0.5.0
|
|
110
|
-
#
|
|
111
|
-
# @param [Array<Symbol>] parameters Attributes to sort on - left to right.
|
|
112
|
-
# @return [Array<Grom::Node>] A sorted array of nodes.
|
|
113
|
-
def reverse_sort_by(*parameters)
|
|
114
|
-
Parliament::Utils.reverse_sort_by({
|
|
115
|
-
list: @nodes,
|
|
116
|
-
parameters: parameters
|
|
117
|
-
})
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
private
|
|
121
|
-
|
|
122
|
-
def build_responses(filtered_objects)
|
|
123
|
-
result = []
|
|
124
|
-
|
|
125
|
-
filtered_objects.each do |objects|
|
|
126
|
-
result << Parliament::Response.new(objects)
|
|
127
|
-
end
|
|
128
|
-
result
|
|
129
|
-
end
|
|
2
|
+
# Namespace for classes and modules that handle http responses.
|
|
3
|
+
# @since 0.7.5
|
|
4
|
+
module Response
|
|
5
|
+
require 'parliament/response/base_response'
|
|
130
6
|
end
|
|
131
7
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Parliament
|
|
2
|
+
module Response
|
|
3
|
+
# An API response built from API data.
|
|
4
|
+
#
|
|
5
|
+
# @since 0.7.5.
|
|
6
|
+
# @attr_reader [HTTPResponse] response the HTTPResponse from the API.
|
|
7
|
+
class BaseResponse
|
|
8
|
+
attr_reader :response
|
|
9
|
+
|
|
10
|
+
# Creates a Parliament::BaseResponse object.
|
|
11
|
+
#
|
|
12
|
+
# @param [HTTPResponse] response an HTTPResponse from the API.
|
|
13
|
+
def initialize(response)
|
|
14
|
+
@response = response
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lib/parliament/version.rb
CHANGED
data/parliament-ruby.gemspec
CHANGED
|
@@ -20,8 +20,6 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
21
|
spec.require_paths = ['lib']
|
|
22
22
|
|
|
23
|
-
spec.add_dependency 'grom', '~> 0.3.6'
|
|
24
|
-
|
|
25
23
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
|
26
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
|
27
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
@@ -29,4 +27,5 @@ Gem::Specification.new do |spec|
|
|
|
29
27
|
spec.add_development_dependency 'simplecov', '~> 0.12'
|
|
30
28
|
spec.add_development_dependency 'vcr', '~> 3.0'
|
|
31
29
|
spec.add_development_dependency 'webmock', '~> 2.3'
|
|
30
|
+
spec.add_development_dependency 'parliament-grom-decorators'
|
|
32
31
|
end
|
metadata
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parliament-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.5.pre
|
|
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-04-
|
|
11
|
+
date: 2017-04-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: grom
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.3.6
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.3.6
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: bundler
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +108,20 @@ dependencies:
|
|
|
122
108
|
- - "~>"
|
|
123
109
|
- !ruby/object:Gem::Version
|
|
124
110
|
version: '2.3'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: parliament-grom-decorators
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
125
|
description: Internal parliamentary data API wrapper for ruby
|
|
126
126
|
email:
|
|
127
127
|
- mattrayner1@gmail.com
|
|
@@ -146,31 +146,15 @@ files:
|
|
|
146
146
|
- lib/parliament.rb
|
|
147
147
|
- lib/parliament/builder.rb
|
|
148
148
|
- lib/parliament/builder/base_response_builder.rb
|
|
149
|
-
- lib/parliament/builder/ntriple_response_builder.rb
|
|
150
149
|
- lib/parliament/client_error.rb
|
|
151
|
-
- lib/parliament/decorator.rb
|
|
152
|
-
- lib/parliament/decorator/constituency_area.rb
|
|
153
|
-
- lib/parliament/decorator/constituency_group.rb
|
|
154
|
-
- lib/parliament/decorator/contact_point.rb
|
|
155
|
-
- lib/parliament/decorator/gender.rb
|
|
156
|
-
- lib/parliament/decorator/gender_identity.rb
|
|
157
|
-
- lib/parliament/decorator/house.rb
|
|
158
|
-
- lib/parliament/decorator/house_incumbency.rb
|
|
159
|
-
- lib/parliament/decorator/house_seat.rb
|
|
160
|
-
- lib/parliament/decorator/incumbency.rb
|
|
161
|
-
- lib/parliament/decorator/party.rb
|
|
162
|
-
- lib/parliament/decorator/party_membership.rb
|
|
163
|
-
- lib/parliament/decorator/person.rb
|
|
164
|
-
- lib/parliament/decorator/postal_address.rb
|
|
165
|
-
- lib/parliament/decorator/seat_incumbency.rb
|
|
166
150
|
- lib/parliament/network_error.rb
|
|
167
151
|
- lib/parliament/no_content_response_error.rb
|
|
168
152
|
- lib/parliament/request.rb
|
|
169
153
|
- lib/parliament/request/base_request.rb
|
|
170
154
|
- lib/parliament/request/url_request.rb
|
|
171
155
|
- lib/parliament/response.rb
|
|
156
|
+
- lib/parliament/response/base_response.rb
|
|
172
157
|
- lib/parliament/server_error.rb
|
|
173
|
-
- lib/parliament/utils.rb
|
|
174
158
|
- lib/parliament/version.rb
|
|
175
159
|
- parliament-ruby.gemspec
|
|
176
160
|
homepage: http://github.com/ukparliament/parliament_ruby
|
|
@@ -188,12 +172,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
188
172
|
version: '0'
|
|
189
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
174
|
requirements:
|
|
191
|
-
- - "
|
|
175
|
+
- - ">"
|
|
192
176
|
- !ruby/object:Gem::Version
|
|
193
|
-
version:
|
|
177
|
+
version: 1.3.1
|
|
194
178
|
requirements: []
|
|
195
179
|
rubyforge_project:
|
|
196
|
-
rubygems_version: 2.6.
|
|
180
|
+
rubygems_version: 2.6.6
|
|
197
181
|
signing_key:
|
|
198
182
|
specification_version: 4
|
|
199
183
|
summary: Internal parliamentary API wrapper
|