my_api_client 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cff6147b021565de2bbace815aad8f2f5f46429c206837a1c703474973c3e9e5
4
- data.tar.gz: b64a9ecfcdbbe6b9b850650201df5eb36f9ff3c081d5f0426a4eeee03c5bac48
3
+ metadata.gz: 1e548093a65be2816e7e86939b5570ce245af19b2422180cba0d9cff7f2f15ed
4
+ data.tar.gz: 0cbafd89253c574bc85cba334a6e90349b51af033aec2b8bcc5076cef22824d7
5
5
  SHA512:
6
- metadata.gz: ec4a16df9a544a84658a5df6953c0cb141ef8d8867091723fe6a538c5b77fd3ad2da3f0d1afff1eee7eae394692dbc99785d426005196089c181938614c6cb30
7
- data.tar.gz: 624c0d500e344920206beeaaecbe9c24f1020850ab0181aca38499d474a7171335a8b4d85ab29317778880b98e052f9d90f4f08fa4a4d85fe915aaf636368d04
6
+ metadata.gz: b370c044f12d7d9862bbe3cb1d038a0f7a949acbf2390a442880d59db33f5f5d42ff73e8f205f4696ed2713b3102b86b6cc2a473e218ee2269ea385c6d80c890
7
+ data.tar.gz: e32efde0fd72efc444dbac9f5435cf9682fc5c18e4d0a8dc09571de9c4d29b8a36b375cee239a39cb05f4af65f2075cd245e6f985d01d11e4166ed0cc46b936f
data/.gem_comet.yml CHANGED
@@ -1,3 +1,8 @@
1
+ # [Usage]
2
+ #
3
+ # $ gem install gem_comet
4
+ # $ gem_comet release {version number, like as "1.2.3"}
5
+
1
6
  version: 1
2
7
 
3
8
  release:
data/CHANGELOG.md ADDED
@@ -0,0 +1,159 @@
1
+ # Change log
2
+
3
+ ## 0.8.0 (July 23, 2019)
4
+
5
+ ### New Features
6
+
7
+ * Allow method calling on error handling (#89)
8
+
9
+ ### Breaking Changes
10
+
11
+ * Require sawyer gem v0.8.2 over (#88)
12
+
13
+ ## 0.7.0 (July 17, 2019)
14
+
15
+ ### Features
16
+
17
+ * Add request duration to metadata (#80)
18
+ * Support boolean on error handling (#81)
19
+
20
+ ### Breaking Changes
21
+
22
+ * Modify the generator to be simple (#82)
23
+
24
+ ### Misc
25
+
26
+ * Re-generate .rubocop_todo.yml with RuboCop v0.73.0 (#79)
27
+ * Introduce gem comet (#85)
28
+
29
+ ## 0.6.2 (July 03, 2019)
30
+
31
+ ### Bug fixes
32
+
33
+ * Fix logger setter on the template (#76)
34
+ * Fix #54
35
+
36
+ ## 0.6.1 (July 03, 2019)
37
+
38
+ ### Misc
39
+
40
+ * Bump yard from `0.9.19` to `0.9.20` (#72)
41
+ * Fix a security risk
42
+
43
+ ## 0.6.0 (June 25, 2019)
44
+
45
+ ### New Features
46
+
47
+ * New stubbing helper (#65)
48
+
49
+ ```rb
50
+ stub_api_client_all(
51
+ ExampleApiClient,
52
+ get_user: { response: { id: 1 } }, # Returns an arbitrary response.
53
+ post_users: { id: 1 }, # You can ommit `response` keyword.
54
+ patch_user: ->(params) { { id: params[:id] } }, # Returns calculated result as response.
55
+ delete_user: { raise: MyApiClient::ClientError } # Raises an arbitrary error.
56
+ )
57
+ response = ExampleApiClient.new.get_user(id: 123)
58
+ response.id # => 1
59
+ ```
60
+
61
+ ```rb
62
+ api_client = stub_api_client(
63
+ ExampleApiClient,
64
+ get_user: { response: { id: 1 } }, # Returns an arbitrary response.
65
+ post_users: { id: 1 }, # You can ommit `response` keyword.
66
+ patch_user: ->(params) { { id: params[:id] } }, # Returns calculated result as response.
67
+ delete_user: { raise: MyApiClient::ClientError } # Raises an arbitrary error.
68
+ )
69
+ response = api_client.get_user(id: 123)
70
+ response.id # => 1
71
+ ```
72
+
73
+ ## 0.5.3 (June 23, 2019)
74
+
75
+ ### Bug Fixes
76
+
77
+ * Initialize sawyer agent before logger initialization (#60)
78
+ * Fixes: The URL included in the logger is incomplete (#53)
79
+ * Fix parsing error if given text/html response (#61)
80
+
81
+ ## 0.5.2 (June 23, 2019)
82
+
83
+ ### Bug Fixes
84
+
85
+ * Fix the result of the retry (#57)
86
+ * Issue: Return values are nil after retrying (#56)
87
+
88
+ ### Misc
89
+
90
+ * Improvement test coverage (#55)
91
+
92
+ ## 0.5.1 (June 19, 2019)
93
+
94
+ ### Bug Fixes
95
+
96
+ * Fix unsupported data for the Bugsnag breadcrumbs (#50)
97
+
98
+ ## 0.5.0 (June 16, 2019)
99
+
100
+ ### New Features
101
+
102
+ * Support bugsnag breadcrumb (#41)
103
+
104
+ ### Misc
105
+
106
+ * Use CircleCI Orbs (#43)
107
+
108
+ ## 0.4.0 (June 03, 2019)
109
+
110
+ ### Feature
111
+
112
+ * Improvement for endpoint (#35)
113
+
114
+ ### Bug Fix
115
+
116
+ * Add requirements for `$ bin/console` (#31)
117
+
118
+ ### Misc
119
+
120
+ * Update RuboCop v0.70.0 -> v0.71.0 (#34)
121
+
122
+ ## 0.3.0 (May 29, 2019)
123
+
124
+ ### New Features
125
+
126
+ * Provide test helper for RSpec (#28)
127
+
128
+ ## 0.2.0 (May 29, 2019)
129
+
130
+ ### New Features
131
+
132
+ * Support Bugsnag metadata (#22)
133
+
134
+ ### Misc
135
+
136
+ * Improve test coverage (#24)
137
+ * Fix problem on the release job (#25)
138
+
139
+ ## 0.1.4 (May 28, 2019)
140
+
141
+ ### Bugfix
142
+
143
+ * Support activesupport before v5.2.0 (#17)
144
+
145
+ ## 0.1.3 (May 27, 2019)
146
+
147
+ * Fix wrong variable name (#13)
148
+
149
+ ## 0.1.2 (May 27, 2019)
150
+
151
+ * Fix wrong method name (#10)
152
+
153
+ ## 0.1.1 (May 27, 2019)
154
+
155
+ * Fix typo (#6)
156
+
157
+ ## 0.1.0 (May 27, 2019)
158
+
159
+ * The first release :tada:
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- my_api_client (0.7.0)
4
+ my_api_client (0.8.0)
5
5
  activesupport (>= 4.2.0)
6
6
  jsonpath
7
- sawyer
7
+ sawyer (>= 0.8.2)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
data/README.jp.md CHANGED
@@ -170,6 +170,23 @@ def my_error_handling(params, logger)
170
170
  end
171
171
  ```
172
172
 
173
+ #### Symbol を利用する
174
+
175
+ ```ruby
176
+ error_handling json: { '$.errors.code': :negative? }
177
+ ```
178
+
179
+ 実験的な機能ですが、`status` や `json` の Value に `Symbol` を指定することで、結果値に対してメソッド呼び出しを行い、結果を判定させる事ができます。上記の場合、以下のような JSON にマッチします。なお、対象 Object に `#negative?` が存在しない場合はメソッドは呼び出されません。
180
+
181
+ ```json
182
+ {
183
+ "erros": {
184
+ "code": -1,
185
+ "message": "Some error has occurred."
186
+ }
187
+ }
188
+ ```
189
+
173
190
  #### MyApiClient::Params::Params
174
191
 
175
192
  WIP
data/lib/my_api_client.rb CHANGED
@@ -25,20 +25,3 @@ begin
25
25
  rescue LoadError
26
26
  nil
27
27
  end
28
-
29
- if Sawyer::VERSION < '0.8.2'
30
- module Sawyer
31
- # NOTE: Old sawyer does not have attribute reader for response body.
32
- # But new version sawyer is conflict some gems (e.g. octkit).
33
- class Response
34
- attr_reader :body, :env
35
-
36
- alias _original_initialize initialize
37
-
38
- def initialize(agent, res, options = {})
39
- @body = res.body
40
- _original_initialize(agent, res, options)
41
- end
42
- end
43
- end
44
- end
@@ -45,20 +45,24 @@ module MyApiClient
45
45
 
46
46
  private
47
47
 
48
+ # rubocop:disable Metrics/CyclomaticComplexity
48
49
  def match?(operator, target)
49
- return true if operator.nil?
50
-
51
50
  case operator
51
+ when nil
52
+ true
52
53
  when String, Integer, TrueClass, FalseClass
53
54
  operator == target
54
55
  when Range
55
56
  operator.include?(target)
56
57
  when Regexp
57
58
  operator =~ target.to_s
59
+ when Symbol
60
+ target.respond_to?(operator) && target.public_send(operator)
58
61
  else
59
62
  raise "Unexpected operator type was given: #{operator.inspect}"
60
63
  end
61
64
  end
65
+ # rubocop:enable Metrics/CyclomaticComplexity
62
66
 
63
67
  def match_all?(json, response_body)
64
68
  return true if json.nil?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyApiClient
4
- VERSION = '0.7.0'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency 'activesupport', '>= 4.2.0'
26
26
  spec.add_dependency 'jsonpath'
27
- spec.add_dependency 'sawyer'
27
+ spec.add_dependency 'sawyer', '>= 0.8.2'
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.16'
30
30
  spec.add_development_dependency 'pry-byebug'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryz310
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-17 00:00:00.000000000 Z
11
+ date: 2019-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.8.2
48
48
  type: :runtime
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'
54
+ version: 0.8.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -220,6 +220,7 @@ files:
220
220
  - ".rspec"
221
221
  - ".rubocop.yml"
222
222
  - ".rubocop_todo.yml"
223
+ - CHANGELOG.md
223
224
  - CODE_OF_CONDUCT.md
224
225
  - Gemfile
225
226
  - Gemfile.lock