endo 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a6e0eb3c683feb92b2e6b18a1a76ff6354a99e3
4
- data.tar.gz: 2f97c729f144198dc2cb4d840415c746ac19ae83
3
+ metadata.gz: ac22efa794a76374a866f7c8f19ee7b7a261efda
4
+ data.tar.gz: 25f3b904a025040605012eb92327951ea8b87310
5
5
  SHA512:
6
- metadata.gz: c79bbe2c0263bb186da2dfc9f603d97fae2e7db20de7a5185508fdc2dc389b393ac8da50422c71eefcac213db2da59177853aafcf6d5d1f5d39989c4d3671e82
7
- data.tar.gz: 9c1520a0698c7191fdb64e05a0549f2fafee9d570a8639084d0048efaa16327bef551429685c156f872dd936f769b084d2844129ca389fce1975ad4b5a5b0854
6
+ metadata.gz: 727908b09dfa7314bd86b96ed4a6afda60dede68beb0de41f0bd9bb715850a9979f74a72835211dcf537c0705271f861459f8370c6e83a645d40ce361ad32603
7
+ data.tar.gz: 5f501ccbfc7ec6f91a07d480cef5f120dfde0bc9b47c0d33325af782b213a6f6254473295c3f1d7ebb6512c7a953d6378ceab0e6ad7f24e3b95dabde1b126a6c
@@ -0,0 +1,28 @@
1
+ Style/Documentation:
2
+ Enabled: false
3
+
4
+ Style/AsciiComments:
5
+ Enabled: false
6
+
7
+ Metrics/LineLength:
8
+ Max: 160
9
+
10
+ Style/IfUnlessModifier:
11
+ Enabled: false
12
+
13
+ Metrics/MethodLength:
14
+ Max: 20
15
+ Exclude:
16
+ - "db/migrate/*.rb"
17
+
18
+ Metrics/AbcSize:
19
+ Max: 30
20
+
21
+ Metrics/CyclomaticComplexity:
22
+ Max: 10
23
+
24
+ Metrics/PerceivedComplexity:
25
+ Max: 8
26
+
27
+ AllCops:
28
+ TargetRubyVersion: 2.2
@@ -0,0 +1,270 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2016-05-02 14:46:30 +0900 using RuboCop version 0.39.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Lint/AmbiguousOperator:
11
+ Exclude:
12
+ - 'lib/endo/core.rb'
13
+
14
+ # Offense count: 5
15
+ # Cop supports --auto-correct.
16
+ # Configuration parameters: AlignWith, SupportedStyles, AutoCorrect.
17
+ # SupportedStyles: keyword, variable, start_of_line
18
+ Lint/EndAlignment:
19
+ Enabled: false
20
+
21
+ # Offense count: 1
22
+ Lint/UselessAssignment:
23
+ Exclude:
24
+ - 'lib/endo/core.rb'
25
+
26
+ # Offense count: 3
27
+ Metrics/AbcSize:
28
+ Max: 40
29
+
30
+ # Offense count: 1
31
+ # Configuration parameters: CountComments.
32
+ Metrics/ClassLength:
33
+ Max: 149
34
+
35
+ # Offense count: 2
36
+ Metrics/CyclomaticComplexity:
37
+ Max: 8
38
+
39
+ # Offense count: 3
40
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
41
+ # URISchemes: http, https
42
+ Metrics/LineLength:
43
+ Max: 127
44
+
45
+ # Offense count: 4
46
+ # Configuration parameters: CountComments.
47
+ Metrics/MethodLength:
48
+ Max: 25
49
+
50
+ # Offense count: 1
51
+ Metrics/PerceivedComplexity:
52
+ Max: 8
53
+
54
+ # Offense count: 3
55
+ # Cop supports --auto-correct.
56
+ Performance/RedundantBlockCall:
57
+ Exclude:
58
+ - 'lib/endo/core.rb'
59
+
60
+ # Offense count: 1
61
+ Style/AsciiComments:
62
+ Exclude:
63
+ - 'lib/endo/core.rb'
64
+
65
+ # Offense count: 7
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: SupportedStyles, IndentOneStep, IndentationWidth.
68
+ # SupportedStyles: case, end
69
+ Style/CaseIndentation:
70
+ IndentWhenRelativeTo: end
71
+
72
+ # Offense count: 2
73
+ # Cop supports --auto-correct.
74
+ Style/DeprecatedHashMethods:
75
+ Exclude:
76
+ - 'lib/endo/core.rb'
77
+
78
+ # Offense count: 10
79
+ Style/Documentation:
80
+ Exclude:
81
+ - 'spec/**/*'
82
+ - 'test/**/*'
83
+ - 'lib/endo.rb'
84
+ - 'lib/endo/cli.rb'
85
+ - 'lib/endo/core.rb'
86
+ - 'lib/endo/error/http_error.rb'
87
+ - 'lib/endo/error/validation_error.rb'
88
+ - 'lib/endo/expectation_target.rb'
89
+ - 'lib/endo/matchers.rb'
90
+ - 'lib/endo/matchers/base_matcher.rb'
91
+ - 'lib/endo/matchers/eq.rb'
92
+ - 'lib/endo/matchers/include.rb'
93
+
94
+ # Offense count: 5
95
+ # Cop supports --auto-correct.
96
+ Style/ElseAlignment:
97
+ Exclude:
98
+ - 'lib/endo/core.rb'
99
+
100
+ # Offense count: 3
101
+ # Cop supports --auto-correct.
102
+ Style/EmptyLines:
103
+ Exclude:
104
+ - 'lib/endo/expectation_target.rb'
105
+ - 'lib/endo/matchers.rb'
106
+
107
+ # Offense count: 4
108
+ # Cop supports --auto-correct.
109
+ Style/EmptyLinesAroundAccessModifier:
110
+ Exclude:
111
+ - 'lib/endo/cli.rb'
112
+ - 'lib/endo/core.rb'
113
+ - 'lib/endo/matchers/eq.rb'
114
+ - 'lib/endo/matchers/include.rb'
115
+
116
+ # Offense count: 4
117
+ # Cop supports --auto-correct.
118
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
119
+ # SupportedStyles: empty_lines, no_empty_lines
120
+ Style/EmptyLinesAroundClassBody:
121
+ Exclude:
122
+ - 'lib/endo/core.rb'
123
+ - 'lib/endo/error/http_error.rb'
124
+ - 'lib/endo/error/validation_error.rb'
125
+ - 'lib/endo/expectation_target.rb'
126
+
127
+ # Offense count: 2
128
+ # Cop supports --auto-correct.
129
+ Style/EmptyLinesAroundMethodBody:
130
+ Exclude:
131
+ - 'lib/endo/core.rb'
132
+
133
+ # Offense count: 1
134
+ # Configuration parameters: MinBodyLength.
135
+ Style/GuardClause:
136
+ Exclude:
137
+ - 'lib/endo/matchers/include.rb'
138
+
139
+ # Offense count: 2
140
+ # Cop supports --auto-correct.
141
+ # Configuration parameters: MaxLineLength.
142
+ Style/IfUnlessModifier:
143
+ Exclude:
144
+ - 'lib/endo/core.rb'
145
+
146
+ # Offense count: 2
147
+ # Cop supports --auto-correct.
148
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
149
+ # SupportedStyles: normal, rails
150
+ Style/IndentationConsistency:
151
+ Exclude:
152
+ - 'lib/endo/matchers/eq.rb'
153
+ - 'lib/endo/matchers/include.rb'
154
+
155
+ # Offense count: 3
156
+ # Cop supports --auto-correct.
157
+ # Configuration parameters: Width.
158
+ Style/IndentationWidth:
159
+ Exclude:
160
+ - 'lib/endo/core.rb'
161
+
162
+ # Offense count: 3
163
+ # Cop supports --auto-correct.
164
+ Style/LeadingCommentSpace:
165
+ Exclude:
166
+ - 'lib/endo/core.rb'
167
+
168
+ # Offense count: 1
169
+ # Cop supports --auto-correct.
170
+ Style/MutableConstant:
171
+ Exclude:
172
+ - 'lib/endo/version.rb'
173
+
174
+ # Offense count: 2
175
+ # Cop supports --auto-correct.
176
+ # Configuration parameters: PreferredDelimiters.
177
+ Style/PercentLiteralDelimiters:
178
+ Exclude:
179
+ - 'endo.gemspec'
180
+
181
+ # Offense count: 5
182
+ # Configuration parameters: SupportedStyles.
183
+ # SupportedStyles: compact, exploded
184
+ Style/RaiseArgs:
185
+ EnforcedStyle: compact
186
+
187
+ # Offense count: 1
188
+ # Cop supports --auto-correct.
189
+ Style/RedundantParentheses:
190
+ Exclude:
191
+ - 'lib/endo/core.rb'
192
+
193
+ # Offense count: 2
194
+ # Cop supports --auto-correct.
195
+ # Configuration parameters: AllowMultipleReturnValues.
196
+ Style/RedundantReturn:
197
+ Exclude:
198
+ - 'lib/endo/core.rb'
199
+
200
+ # Offense count: 2
201
+ # Cop supports --auto-correct.
202
+ Style/RedundantSelf:
203
+ Exclude:
204
+ - 'lib/endo/core.rb'
205
+
206
+ # Offense count: 3
207
+ # Cop supports --auto-correct.
208
+ # Configuration parameters: SupportedStyles.
209
+ # SupportedStyles: space, no_space
210
+ Style/SpaceAroundEqualsInParameterDefault:
211
+ EnforcedStyle: no_space
212
+
213
+ # Offense count: 1
214
+ # Cop supports --auto-correct.
215
+ Style/SpaceAroundKeyword:
216
+ Exclude:
217
+ - 'lib/endo/core.rb'
218
+
219
+ # Offense count: 4
220
+ # Cop supports --auto-correct.
221
+ # Configuration parameters: AllowForAlignment.
222
+ Style/SpaceAroundOperators:
223
+ Exclude:
224
+ - 'lib/endo/core.rb'
225
+
226
+ # Offense count: 1
227
+ # Cop supports --auto-correct.
228
+ # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
229
+ # SupportedStyles: space, no_space
230
+ Style/SpaceInsideBlockBraces:
231
+ Enabled: false
232
+
233
+ # Offense count: 1
234
+ # Cop supports --auto-correct.
235
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
236
+ # SupportedStyles: use_perl_names, use_english_names
237
+ Style/SpecialGlobalVars:
238
+ Enabled: false
239
+
240
+ # Offense count: 26
241
+ # Cop supports --auto-correct.
242
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline.
243
+ # SupportedStyles: single_quotes, double_quotes
244
+ Style/StringLiterals:
245
+ Enabled: false
246
+
247
+ # Offense count: 12
248
+ # Cop supports --auto-correct.
249
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
250
+ # SupportedStyles: final_newline, final_blank_line
251
+ Style/TrailingBlankLines:
252
+ Exclude:
253
+ - 'Rakefile'
254
+ - 'bin/endo'
255
+ - 'lib/endo.rb'
256
+ - 'lib/endo/core.rb'
257
+ - 'lib/endo/error.rb'
258
+ - 'lib/endo/error/http_error.rb'
259
+ - 'lib/endo/error/validation_error.rb'
260
+ - 'lib/endo/expectation_target.rb'
261
+ - 'lib/endo/matchers.rb'
262
+ - 'lib/endo/matchers/base_matcher.rb'
263
+ - 'lib/endo/matchers/eq.rb'
264
+ - 'lib/endo/matchers/include.rb'
265
+
266
+ # Offense count: 2
267
+ # Cop supports --auto-correct.
268
+ Style/UnneededPercentQ:
269
+ Exclude:
270
+ - 'endo.gemspec'
data/README.md CHANGED
@@ -1,37 +1,38 @@
1
1
  # endo
2
2
 
3
- This is a tool for testing api endpoints.
4
- In development state.
3
+ This is a tool for testing json api endpoints.
5
4
 
6
5
  # Usage
7
6
 
8
7
  Write endo file.
9
- ex. endo/sample.endo
8
+ ex. endo/sample.rb
10
9
 
11
10
  ```ruby
12
- set :base_url, 'http://endo-sample.maruware.com'
11
+ base_url 'http://localhost:3000'
12
+ basic_auth 'user', 'pass'
13
13
 
14
14
  get '/articles' do
15
- expect(body: ->{ at(0)[:title] }).to eq 'good'
15
+ expect(header: 'Content-Type').to eq 'application/json; charset=utf-8'
16
+ end
17
+
18
+ post '/articles.json' do
19
+ param 'article[title]', 'hello'
20
+ param 'article[content]', 'Hello, world!'
16
21
  end
17
22
 
18
23
  get '/articles/:article_id' do
19
24
  param :article_id do
20
- from :get, '/articles', ->{ first[:id] }
25
+ from :post, '/articles.json', -> { self[:id] }
21
26
  end
22
27
 
23
- expect(header: 'Content-Type').to eq 'application/json; charset=utf-8'
24
- end
25
-
26
- post '/articless' do
27
- param :title, 'hello'
28
- param :text, 'Hello, world!'
28
+ expect(header: 'Content-Type').to eq 'application/json'
29
+ expect(body: -> { self[:title] }).to eq 'hello'
29
30
  end
30
31
  ```
31
32
 
32
33
  Exec endo command.
33
34
 
34
- ![2016-03-07 21 24 08](https://cloud.githubusercontent.com/assets/1129887/13569450/7d9a796a-e4ab-11e5-9ab0-e52eef36ea0f.png)
35
+ ![ss_ 2016-05-02 16 12 58](https://cloud.githubusercontent.com/assets/1129887/14948974/f20798cc-1080-11e6-8b0d-90679c26b44e.png)
35
36
 
36
37
  ## Installation
37
38
 
@@ -51,4 +52,4 @@ Or install it yourself as:
51
52
 
52
53
  ```bash
53
54
  $ gem install endo
54
- ```
55
+ ```
@@ -1,4 +1,4 @@
1
- set :base_url, 'http://localhost:3000'
1
+ base_url 'http://localhost:3000'
2
2
  basic_auth 'user', 'pass'
3
3
 
4
4
  get '/articles' do
@@ -12,16 +12,16 @@ end
12
12
 
13
13
  get '/articles/:article_id' do
14
14
  param :article_id do
15
- from :post, '/articles.json', ->{ self[:id] }
15
+ from :post, '/articles.json', -> { self[:id] }
16
16
  end
17
17
 
18
18
  expect(header: 'Content-Type').to eq 'application/json; charset=utf-8'
19
- expect(body: ->{ self[:title] }).to eq 'hello'
19
+ expect(body: -> { self[:title] }).to eq 'hello'
20
20
  end
21
21
 
22
22
  patch '/articles/:article_id.json' do
23
23
  param :article_id do
24
- from :post, '/articles.json', ->{ self[:id] }
24
+ from :post, '/articles.json', -> { self[:id] }
25
25
  end
26
26
 
27
27
  param 'article[title]', 'こんにちは'
@@ -29,15 +29,15 @@ end
29
29
 
30
30
  get '/articles/:article_id' do
31
31
  param :article_id do
32
- from :post, '/articles.json', ->{ self[:id] }
32
+ from :post, '/articles.json', -> { self[:id] }
33
33
  end
34
34
 
35
- expect(body: ->{ self[:title] }).to eq 'こんにちは'
35
+ expect(body: -> { self[:title] }).to eq 'こんにちは'
36
36
  end
37
37
 
38
38
  put '/articles/:article_id.json' do
39
39
  param :article_id do
40
- from :post, '/articles.json', ->{ self[:id] }
40
+ from :post, '/articles.json', -> { self[:id] }
41
41
  end
42
42
 
43
43
  param 'article[title]', 'bonjour'
@@ -45,6 +45,6 @@ end
45
45
 
46
46
  delete '/articles/:article_id.json' do
47
47
  param :article_id do
48
- from :post, '/articles.json', ->{ self[:id] }
48
+ from :post, '/articles.json', -> { self[:id] }
49
49
  end
50
- end
50
+ end
@@ -5,8 +5,8 @@ module Endo
5
5
  class CLI < Thor
6
6
  default_command :exec
7
7
 
8
- desc "exec usage", "exec desc"
9
- def exec(endo_file=nil)
8
+ desc 'exec usage', 'exec desc'
9
+ def exec(endo_file = nil)
10
10
  if endo_file.nil?
11
11
  Dir.glob('endo/*.rb').each do |f|
12
12
  exec_proc(f)
@@ -16,12 +16,13 @@ module Endo
16
16
  end
17
17
  end
18
18
 
19
- desc "version", "Print version"
19
+ desc 'version', 'Print version'
20
20
  def version
21
21
  puts "endo version #{Endo::VERSION}"
22
22
  end
23
23
 
24
24
  private
25
+
25
26
  def exec_proc(file_path)
26
27
  executor = Endo::Core.new
27
28
  executor.instance_eval File.read(file_path)
@@ -8,16 +8,10 @@ module Endo
8
8
  include Endo::Matchers
9
9
 
10
10
  def initialize
11
- @props = {}
12
11
  @responses = {}
13
12
  @expect_alls = {}
14
13
  end
15
14
 
16
- def set(key, val)
17
- #TODO: validate key
18
- @props[key] = val
19
- end
20
-
21
15
  def get(endpoint, &block)
22
16
  request(endpoint, :get, &block)
23
17
  end
@@ -38,43 +32,39 @@ module Endo
38
32
  request(endpoint, :put, &block)
39
33
  end
40
34
 
41
- #TODO: 制限
42
- def param(key, val=nil, &block)
43
- unless (!val.nil?) ^ (!block.nil?) # Only either one
44
- raise ArgumentError.new('DupValue')
45
- end
46
-
47
- @params[key.to_s] = if val
48
- val
49
- else
50
- block.call
51
- end
35
+ # TODO: 制限
36
+ def param(key, val = nil)
37
+ raise ArgumentError, 'DupValue' unless !val.nil? ^ block_given?
52
38
 
39
+ @params[key.to_s] = val ? val : yield
53
40
  end
54
41
 
55
- #TODO: Limit scope
56
- def from(method, endpoint, lmd=nil, &block)
42
+ # TODO: Limit scope
43
+ def from(method, endpoint, lmd = nil, &_block)
57
44
  key = build_response_key(method, endpoint)
58
- unless @responses.has_key? key
59
- raise RuntimeError.new("NotFoundKey [#{key}]")
60
- end
45
+ raise RuntimeError "NotFoundKey [#{key}]" unless @responses.key? key
61
46
 
62
47
  res = @responses[key]
63
- val = if lmd
64
- res.instance_exec &lmd
65
- elsif block
66
- block.call(res)
48
+ val = nil
49
+ if !lmd.nil?
50
+ val = res.instance_exec(&lmd)
51
+ elsif block_given?
52
+ val = yield res
67
53
  else
68
- raise ArgumentError.new('UndefinedBlock')
54
+ raise ArgumentError, 'UndefinedBlock'
69
55
  end
70
56
 
71
57
  unless val.is_a?(String) || val.is_a?(Integer) || val.is_a?(Numeric)
72
- raise RuntimeError.new('BadValueType')
58
+ raise 'BadValueType'
73
59
  end
74
60
 
75
61
  val
76
62
  end
77
63
 
64
+ def base_url(url)
65
+ @base_url = url
66
+ end
67
+
78
68
  def basic_auth(user, pass)
79
69
  @basic_auth = {
80
70
  user: user, pass: pass
@@ -82,27 +72,22 @@ module Endo
82
72
  end
83
73
 
84
74
  private
85
- def request(endpoint, method, &block)
86
- org_endpoint = endpoint.clone
87
75
 
76
+ def request(endpoint, method, &_block)
88
77
  @params = {}
89
78
  @expects = []
90
- block.call if block
79
+ yield if block_given?
91
80
 
92
81
  endpoint = apply_pattern_vars(endpoint, @params)
93
-
94
- url = @props[:base_url] + endpoint
82
+ url = @base_url + endpoint
95
83
 
96
84
  begin
97
- t_start = Time.now.instance_eval { self.to_i * 1000 + (usec/1000) }
98
- res = http_request(url, @params, method: method)
99
- t_end = Time.now.instance_eval { self.to_i * 1000 + (usec/1000) }
100
-
101
- res_data = parse_body_json(res)
102
- @responses[build_response_key(method, endpoint)] = res_data
85
+ res, time_ms = request_with_timer(url, method, @params)
103
86
  validate_expects(res) unless @expect_alls.empty? && @expects.empty?
104
- message = "🍺 #{method.upcase} #{endpoint} [#{t_end-t_start}ms]"
105
- rescue Error::HttpError=>e
87
+ @responses[build_response_key(method, endpoint)] = parse_body_json(res)
88
+
89
+ message = "🍺 #{method.upcase} #{endpoint} [#{time_ms}ms]"
90
+ rescue Error::HttpError => e
106
91
  message = "💩 #{method.upcase} #{endpoint} [code: #{e.code}]".red
107
92
  exit 1
108
93
  rescue Error::ValidationError => e
@@ -110,7 +95,6 @@ module Endo
110
95
  ensure
111
96
  puts message
112
97
  end
113
-
114
98
  end
115
99
 
116
100
  def apply_pattern_vars(endpoint, params)
@@ -118,9 +102,7 @@ module Endo
118
102
  if patterns.any?
119
103
  patterns.flatten!
120
104
  patterns.each do |pattern|
121
- unless params.has_key? pattern
122
- raise RuntimeError.new("NotFoundPattern #{pattern}")
123
- end
105
+ raise "NotFoundPattern #{pattern}" unless params.key? pattern
124
106
 
125
107
  endpoint.sub!(/:#{pattern}/, params[pattern].to_s)
126
108
  end
@@ -132,10 +114,28 @@ module Endo
132
114
  endpoint
133
115
  end
134
116
 
117
+ def request_with_timer(url, method, params)
118
+ t_start = Time.now.instance_eval { to_i * 1000 + (usec / 1000) }
119
+ res = http_request(url, params, method: method)
120
+ t_end = Time.now.instance_eval { to_i * 1000 + (usec / 1000) }
121
+
122
+ [res, t_end - t_start]
123
+ end
124
+
135
125
  def http_request(url, params, method: :get)
136
126
  uri = URI.parse url
127
+ req = create_request_each_method(uri, params, method)
128
+
129
+ req.basic_auth @basic_auth[:user], @basic_auth[:pass] if @basic_auth
130
+
131
+ res = Net::HTTP.start(uri.host, uri.port) { |http| http.request(req) }
132
+ raise Error::HttpError.new("HTTP Bad Status[#{res.code}] #{res.body}", res.code, res.body) unless /^20[0-8]$/ =~ res.code
133
+
134
+ res
135
+ end
137
136
 
138
- req = case method
137
+ def create_request_each_method(uri, params, method)
138
+ case method
139
139
  when :get
140
140
  uri.query = URI.encode_www_form(params)
141
141
  Net::HTTP::Get.new uri
@@ -145,23 +145,14 @@ module Endo
145
145
  req
146
146
  when :delete
147
147
  uri.query = URI.encode_www_form(params)
148
- req = Net::HTTP::Delete.new uri
148
+ Net::HTTP::Delete.new uri
149
149
  when :patch
150
150
  uri.query = URI.encode_www_form(params)
151
- req = Net::HTTP::Patch.new uri
151
+ Net::HTTP::Patch.new uri
152
152
  when :put
153
153
  uri.query = URI.encode_www_form(params)
154
- req = Net::HTTP::Put.new uri
154
+ Net::HTTP::Put.new uri
155
155
  end
156
-
157
- if @basic_auth
158
- req.basic_auth @basic_auth[:user], @basic_auth[:pass]
159
- end
160
-
161
- res = Net::HTTP.start(uri.host, uri.port) {|http| http.request req }
162
- raise Error::HttpError.new("HTTP Bad Status[#{res.code}] #{res.body}", res.code, res.body) unless /^20[0-8]$/ =~ res.code
163
-
164
- return res
165
156
  end
166
157
 
167
158
  def parse_body_json(res)
@@ -173,15 +164,15 @@ module Endo
173
164
  end
174
165
 
175
166
  def expect(header: nil, body: nil)
176
- expectation = if header
177
- ExpectationTarget.new(:header, header)
178
- elsif(body)
179
- ExpectationTarget.new(:body, body)
167
+ if header
168
+ expectation = ExpectationTarget.new(:header, header)
169
+ elsif body
170
+ expectation = ExpectationTarget.new(:body, body)
180
171
  else
181
172
  raise 'TODO'
182
173
  end
183
174
  @expects << expectation
184
- return expectation
175
+ expectation
185
176
  end
186
177
 
187
178
  def validate_expects(res)
@@ -191,6 +182,5 @@ module Endo
191
182
  end
192
183
  end
193
184
  end
194
-
195
185
  end
196
- end
186
+ end
@@ -1,4 +1,3 @@
1
-
2
1
  module Endo
3
2
  module Error
4
3
  class HttpError < StandardError
@@ -9,7 +8,6 @@ module Endo
9
8
  @code = code
10
9
  @body = body
11
10
  end
12
-
13
11
  end
14
12
  end
15
- end
13
+ end
@@ -9,7 +9,6 @@ module Endo
9
9
  @expected = expected
10
10
  @actual = actual
11
11
  end
12
-
13
12
  end
14
13
  end
15
- end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Endo
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: endo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - maruware
@@ -89,6 +89,8 @@ extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
+ - ".rubocop.yml"
93
+ - ".rubocop_todo.yml"
92
94
  - Gemfile
93
95
  - README.md
94
96
  - Rakefile