json_client 0.2.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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