json_client 0.2.2 → 1.0.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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -19
  3. data/Rakefile +2 -4
  4. data/json_client.gemspec +18 -17
  5. data/lib/json_client.rb +18 -6
  6. data/lib/json_client/base.rb +48 -47
  7. data/lib/json_client/base_serializer.rb +6 -3
  8. data/lib/json_client/create.rb +9 -0
  9. data/lib/json_client/destroy.rb +11 -0
  10. data/lib/json_client/dsl.rb +2 -2
  11. data/lib/json_client/dsl/on_use_collector.rb +3 -0
  12. data/lib/json_client/dsl/requests_collector.rb +0 -1
  13. data/lib/json_client/dsl/serializers_collector.rb +0 -1
  14. data/lib/json_client/empty_serializer.rb +2 -3
  15. data/lib/json_client/index.rb +9 -0
  16. data/lib/json_client/model_serializer.rb +4 -0
  17. data/lib/json_client/request.rb +48 -0
  18. data/lib/json_client/request_with_body.rb +30 -0
  19. data/lib/json_client/request_without_body.rb +17 -0
  20. data/lib/json_client/requests.rb +58 -16
  21. data/lib/json_client/response.rb +23 -0
  22. data/lib/json_client/show.rb +9 -0
  23. data/lib/json_client/update.rb +15 -0
  24. data/lib/json_client/uri_builder.rb +34 -0
  25. data/lib/json_client/version.rb +1 -1
  26. data/spec/fixtures/vcr_cassettes/all_success.yml +15 -15
  27. data/spec/fixtures/vcr_cassettes/create_success.yml +19 -20
  28. data/spec/fixtures/vcr_cassettes/destroy_success.yml +35 -36
  29. data/spec/fixtures/vcr_cassettes/show_success.yml +17 -16
  30. data/spec/fixtures/vcr_cassettes/update_success.yml +38 -40
  31. data/spec/json_client/base_responses/response_spec.rb +8 -4
  32. data/spec/json_client/base_spec.rb +32 -19
  33. data/spec/json_client/dsl_spec.rb +10 -12
  34. data/spec/json_client/model_serializer_spec.rb +14 -4
  35. data/spec/json_client/{pather_spec.rb → uri_builder_spec.rb} +26 -4
  36. data/spec/json_client_spec.rb +22 -8
  37. data/spec/spec_helper.rb +0 -1
  38. metadata +47 -46
  39. data/lib/json_client/base_requests/create.rb +0 -16
  40. data/lib/json_client/base_requests/destroy.rb +0 -13
  41. data/lib/json_client/base_requests/index.rb +0 -11
  42. data/lib/json_client/base_requests/request.rb +0 -12
  43. data/lib/json_client/base_requests/show.rb +0 -11
  44. data/lib/json_client/base_requests/update.rb +0 -16
  45. data/lib/json_client/base_responses/create.rb +0 -8
  46. data/lib/json_client/base_responses/destroy.rb +0 -8
  47. data/lib/json_client/base_responses/index.rb +0 -8
  48. data/lib/json_client/base_responses/response.rb +0 -25
  49. data/lib/json_client/base_responses/show.rb +0 -8
  50. data/lib/json_client/base_responses/update.rb +0 -8
  51. data/lib/json_client/pather.rb +0 -20
  52. data/lib/json_client/resource_handler.rb +0 -9
  53. data/lib/json_client/responses.rb +0 -29
  54. data/spec/fixtures/vcr_cassettes/authenticate_success.yml +0 -58
  55. data/spec/json_client/base_requests/request_spec.rb +0 -14
  56. data/spec/json_client/requests_spec.rb +0 -43
  57. data/spec/json_client/responses_spec.rb +0 -43
@@ -11,14 +11,14 @@ end
11
11
  describe JsonClient do
12
12
  let(:config) do
13
13
  {
14
- api_key: '124ecd49-07fd-4553-a5cd-0178b7fa8b3f',
15
- api_password: 'IIoclO7kmQqJ1wixWrAuOA',
16
- host: 'http://account-authenticator.herokuapp.com'
14
+ client_id: '0',
15
+ secret_key: 'dummy_key',
16
+ host: 'account-authenticator.herokuapp.com'
17
17
  }
18
18
  end
19
19
 
20
- let(:pather) do
21
- JsonClient::Pather.new(
20
+ let(:uri_builder) do
21
+ JsonClient::UriBuilder.new(
22
22
  config[:host],
23
23
  'etc',
24
24
  'end'
@@ -27,15 +27,29 @@ describe JsonClient do
27
27
 
28
28
  subject do
29
29
  described_class.new(
30
- pather,
30
+ uri_builder,
31
31
  config
32
32
  )
33
33
  end
34
34
 
35
35
  describe '::new' do
36
36
  it 'creates a new base client' do
37
- expect(subject.api_key).to eq config[:api_key]
38
- expect(subject.api_password).to eq config[:api_password]
37
+ expect(subject.client_id).to eq config[:client_id]
38
+ expect(subject.secret_key).to eq config[:secret_key]
39
+ end
40
+ end
41
+
42
+ describe '::b64_encode' do
43
+ it 'base64 encodes a string' do
44
+ expect(described_class.b64_encode('0')).to eq('MA==')
45
+ end
46
+ end
47
+
48
+ describe '::md5_base64_digest' do
49
+ it 'creates an md5 digest for string' do
50
+ expect(
51
+ described_class.md5_base64_digest('hello world')
52
+ ).to eq('XrY7u+Ae7tCTyyK7j1rNww==')
39
53
  end
40
54
  end
41
55
  end
@@ -6,4 +6,3 @@ Coveralls.wear!
6
6
 
7
7
  class SpecHelper
8
8
  end
9
-
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - johnmcconnell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rest-client
14
+ name: attr_init
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.7.2
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.7.2
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: attr_init
28
+ name: api-auth
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.4
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.4
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.0
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.7.0
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 0.7.0
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: webmock
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -152,47 +166,38 @@ files:
152
166
  - json_client.gemspec
153
167
  - lib/json_client.rb
154
168
  - lib/json_client/base.rb
155
- - lib/json_client/base_requests/create.rb
156
- - lib/json_client/base_requests/destroy.rb
157
- - lib/json_client/base_requests/index.rb
158
- - lib/json_client/base_requests/request.rb
159
- - lib/json_client/base_requests/show.rb
160
- - lib/json_client/base_requests/update.rb
161
- - lib/json_client/base_responses/create.rb
162
- - lib/json_client/base_responses/destroy.rb
163
- - lib/json_client/base_responses/index.rb
164
- - lib/json_client/base_responses/response.rb
165
- - lib/json_client/base_responses/show.rb
166
- - lib/json_client/base_responses/update.rb
167
169
  - lib/json_client/base_serializer.rb
170
+ - lib/json_client/create.rb
171
+ - lib/json_client/destroy.rb
168
172
  - lib/json_client/dsl.rb
169
173
  - lib/json_client/dsl/collector.rb
170
174
  - lib/json_client/dsl/on_use_collector.rb
171
175
  - lib/json_client/dsl/requests_collector.rb
172
176
  - lib/json_client/dsl/serializers_collector.rb
173
177
  - lib/json_client/empty_serializer.rb
178
+ - lib/json_client/index.rb
174
179
  - lib/json_client/model_serializer.rb
175
- - lib/json_client/pather.rb
180
+ - lib/json_client/request.rb
181
+ - lib/json_client/request_with_body.rb
182
+ - lib/json_client/request_without_body.rb
176
183
  - lib/json_client/requests.rb
177
- - lib/json_client/resource_handler.rb
178
- - lib/json_client/responses.rb
184
+ - lib/json_client/response.rb
185
+ - lib/json_client/show.rb
186
+ - lib/json_client/update.rb
187
+ - lib/json_client/uri_builder.rb
179
188
  - lib/json_client/version.rb
180
189
  - spec/fixtures/vcr_cassettes/all_success.yml
181
- - spec/fixtures/vcr_cassettes/authenticate_success.yml
182
190
  - spec/fixtures/vcr_cassettes/create_success.yml
183
191
  - spec/fixtures/vcr_cassettes/destroy_success.yml
184
192
  - spec/fixtures/vcr_cassettes/show_success.yml
185
193
  - spec/fixtures/vcr_cassettes/update_success.yml
186
- - spec/json_client/base_requests/request_spec.rb
187
194
  - spec/json_client/base_responses/response_spec.rb
188
195
  - spec/json_client/base_spec.rb
189
196
  - spec/json_client/dsl/collector_spec.rb
190
197
  - spec/json_client/dsl/serializers_collector_spec.rb
191
198
  - spec/json_client/dsl_spec.rb
192
199
  - spec/json_client/model_serializer_spec.rb
193
- - spec/json_client/pather_spec.rb
194
- - spec/json_client/requests_spec.rb
195
- - spec/json_client/responses_spec.rb
200
+ - spec/json_client/uri_builder_spec.rb
196
201
  - spec/json_client_spec.rb
197
202
  - spec/spec_helper.rb
198
203
  homepage: ''
@@ -215,26 +220,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
220
  version: '0'
216
221
  requirements: []
217
222
  rubyforge_project:
218
- rubygems_version: 2.2.2
223
+ rubygems_version: 2.4.5
219
224
  signing_key:
220
225
  specification_version: 4
221
226
  summary: crud json client to make creating services easy'
222
227
  test_files:
223
228
  - spec/fixtures/vcr_cassettes/all_success.yml
224
- - spec/fixtures/vcr_cassettes/authenticate_success.yml
225
229
  - spec/fixtures/vcr_cassettes/create_success.yml
226
230
  - spec/fixtures/vcr_cassettes/destroy_success.yml
227
231
  - spec/fixtures/vcr_cassettes/show_success.yml
228
232
  - spec/fixtures/vcr_cassettes/update_success.yml
229
- - spec/json_client/base_requests/request_spec.rb
230
233
  - spec/json_client/base_responses/response_spec.rb
231
234
  - spec/json_client/base_spec.rb
232
235
  - spec/json_client/dsl/collector_spec.rb
233
236
  - spec/json_client/dsl/serializers_collector_spec.rb
234
237
  - spec/json_client/dsl_spec.rb
235
238
  - spec/json_client/model_serializer_spec.rb
236
- - spec/json_client/pather_spec.rb
237
- - spec/json_client/requests_spec.rb
238
- - spec/json_client/responses_spec.rb
239
+ - spec/json_client/uri_builder_spec.rb
239
240
  - spec/json_client_spec.rb
240
241
  - spec/spec_helper.rb
@@ -1,16 +0,0 @@
1
- require_relative 'request'
2
-
3
- module JsonClient
4
- module BaseRequests
5
- class Create < Request
6
- def fetch(url, auth_params, params)
7
- client.post(
8
- url,
9
- auth_params.merge(params).to_json,
10
- content_type: :json,
11
- accept: :json
12
- )
13
- end
14
- end
15
- end
16
- end
@@ -1,13 +0,0 @@
1
- require_relative 'request'
2
-
3
- module JsonClient
4
- module BaseRequests
5
- class Destroy < Request
6
- def fetch(url, auth_params, params)
7
- client.delete(
8
- url, params: auth_params
9
- )
10
- end
11
- end
12
- end
13
- end
@@ -1,11 +0,0 @@
1
- require_relative 'request'
2
-
3
- module JsonClient
4
- module BaseRequests
5
- class Index < Request
6
- def fetch(url, auth_params, params = nil)
7
- client.get url, params: auth_params
8
- end
9
- end
10
- end
11
- end
@@ -1,12 +0,0 @@
1
- module JsonClient
2
- module BaseRequests
3
- class Request
4
-
5
- protected
6
-
7
- def client
8
- RestClient
9
- end
10
- end
11
- end
12
- end
@@ -1,11 +0,0 @@
1
- require_relative 'request'
2
-
3
- module JsonClient
4
- module BaseRequests
5
- class Show < Request
6
- def fetch(url, auth_params, params)
7
- client.get url, params: auth_params
8
- end
9
- end
10
- end
11
- end
@@ -1,16 +0,0 @@
1
- require_relative 'request'
2
-
3
- module JsonClient
4
- module BaseRequests
5
- class Update < Request
6
- def fetch(url, auth_params, params)
7
- client.put(
8
- url,
9
- auth_params.merge(params).to_json,
10
- content_type: :json,
11
- accept: :json
12
- )
13
- end
14
- end
15
- end
16
- end
@@ -1,8 +0,0 @@
1
- require_relative 'response'
2
-
3
- module JsonClient
4
- module BaseResponses
5
- class Create < Response
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- require_relative 'response'
2
-
3
- module JsonClient
4
- module BaseResponses
5
- class Destroy < Response
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- require_relative 'response'
2
-
3
- module JsonClient
4
- module BaseResponses
5
- class Index < Response
6
- end
7
- end
8
- end
@@ -1,25 +0,0 @@
1
- module JsonClient
2
- module BaseResponses
3
- class Response
4
- attr_reader :raw_response
5
-
6
- def initialize(raw_response)
7
- @raw_response = raw_response
8
- end
9
-
10
- def method_missing(name, *args)
11
- raw_response.public_send(name, *args)
12
- end
13
-
14
- def json
15
- parse_json
16
- end
17
-
18
- protected
19
-
20
- def parse_json
21
- @parse_json ||= JSON.parse(body)
22
- end
23
- end
24
- end
25
- end
@@ -1,8 +0,0 @@
1
- require_relative 'response'
2
-
3
- module JsonClient
4
- module BaseResponses
5
- class Show < Response
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- require_relative 'response'
2
-
3
- module JsonClient
4
- module BaseResponses
5
- class Update < Response
6
- end
7
- end
8
- end
@@ -1,20 +0,0 @@
1
-
2
- module JsonClient
3
- class Pather
4
- attr_reader :host, :ext, :name
5
-
6
- def initialize(host, ext, name)
7
- @host = host
8
- @ext = ext
9
- @name = name
10
- end
11
-
12
- def path(id = nil)
13
- if id.nil?
14
- "#{host}/#{ext}/#{name}"
15
- else
16
- "#{host}/#{ext}/#{name}/#{id}"
17
- end
18
- end
19
- end
20
- end
@@ -1,9 +0,0 @@
1
- require 'rest_client'
2
- require 'json_client/responses'
3
- require 'json_client/requests'
4
-
5
- module JsonClient
6
- class ResourceHandler
7
-
8
- end
9
- end