api_hammer 0.17.0 → 0.18.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: d812135b67bb320c645f0adaa2a50384f7c4e81b
4
- data.tar.gz: 3f8c644149a7ad7878d50af7dd1fb2fbd4ce1166
3
+ metadata.gz: 389df34af6fc825bf80bd8460ec43ca7ea626d52
4
+ data.tar.gz: ad21026ef421554be76e50158c4fe438c9ac2f61
5
5
  SHA512:
6
- metadata.gz: f06fc026f7cc0383eed1ac89974dab0e1d3d9d6067a0d4c95d09c8397f7cbfd825e201c5a4720fc097d3099091d232a7e80e29fce20d2c45ca07eb6fdfa23fc1
7
- data.tar.gz: 3400cc586418fc47faffd6462f78626229d84361f703c9675f6af44978633629aa3104665f1618f11fd33f7480d5a22cc71a2035e463e4e3716946463e9f433c
6
+ metadata.gz: fbc5733ba3f575fce86e74b469c3996884c5a6a8f5a622d47008b4635d5f443fe61d91d24697b964138995337306d8e20777e5d834cd51f554bd41542d06ebfe
7
+ data.tar.gz: f29386f32c2a6d89bc78661ea05c494b25576c59a4c8e7448af6994e44287074c068b662fb2e3bf73dabd15ae2745d871e42959690d1853c02304f13b7dc2e6b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # v0.18.0
2
+ - add option to hc for basic auth
3
+ - add option to hc to make it consider the body as text
4
+ - faraday logger compatibility with old faraday 0.8
5
+ - fix ruby warnings
6
+
1
7
  # v0.17.0
2
8
  - fix ApiHammer::ShowTextExceptions middleware to not rescue certain exceptions
3
9
  - don't insert or rely on Rack::Accept middleware for sinatra; use Rack::Accept more directly
data/bin/hc CHANGED
@@ -23,9 +23,11 @@ $options = {
23
23
  :pretty => nil,
24
24
  :no_ssl_verify => false,
25
25
  :headers => {},
26
+ :text => nil,
26
27
  }
27
28
 
28
29
  $oauth = {}
30
+ $basicauth = {}
29
31
 
30
32
  opt_parser = OptionParser.new do |opts|
31
33
  opts.banner = "Usage: #{$0} [options] <verb> <url> [body]"
@@ -33,6 +35,9 @@ opt_parser = OptionParser.new do |opts|
33
35
  opts.on("-v", "--[no-]verbose", "Run verbosely - output is like curl -v (this is the default)") do |v|
34
36
  $options[:verbose] = v
35
37
  end
38
+ opts.on("--[no-]text", "consider the response body to be text (default relies on Content-Type)") do |v|
39
+ $options[:text] = v
40
+ end
36
41
  opts.on("-q", "Run quietly - only outputs the response body (same as --no-verbose)") do |v|
37
42
  $options[:verbose] = !v
38
43
  end
@@ -66,6 +71,12 @@ opt_parser = OptionParser.new do |opts|
66
71
  opts.on("--oauth-signature-method SIGNATURE_METHOD", "OAuth 1.0 signature method - defaults to HMAC-SHA1") do |signature_method|
67
72
  $oauth[:signature_method] = signature_method
68
73
  end
74
+ opts.on("--basic-user USER", "basic auth user") do |user|
75
+ $basicauth[:user] = user
76
+ end
77
+ opts.on("--basic-password PASSWORD", "basic auth password") do |password|
78
+ $basicauth[:password] = password
79
+ end
69
80
 
70
81
  opts.on("--no-ssl-verify", "Disables SSL verification - use cautiously!") do
71
82
  $options[:no_ssl_verify] = true
@@ -95,6 +106,9 @@ connection = Faraday.new(faraday_options) do |builder|
95
106
  OAuthenticator::FaradaySigner
96
107
  builder.use OAuthenticator::FaradaySigner, $oauth
97
108
  end
109
+ if $basicauth.any?
110
+ builder.basic_auth($basicauth[:user], $basicauth[:password])
111
+ end
98
112
  builder.use($options[:verbose] ? ApiHammer::FaradayCurlVOutputter : ApiHammer::FaradayOutputter, $options)
99
113
  builder.adapter Faraday.default_adapter
100
114
  end
@@ -129,7 +129,7 @@ module ApiHammer
129
129
  def alter_body_by_content_type(body, content_type)
130
130
  return body unless body.is_a?(String)
131
131
  content_type_attrs = ApiHammer::ContentTypeAttrs.new(content_type)
132
- if content_type_attrs.text?
132
+ if @options[:text].nil? ? content_type_attrs.text? : @options[:text]
133
133
  if pretty?
134
134
  case content_type_attrs.media_type
135
135
  when 'application/json'
@@ -37,12 +37,12 @@ module ApiHammer
37
37
 
38
38
  @app.call(request_env).on_complete do |response_env|
39
39
  now = Time.now
40
- status = response_env.status
40
+ status = response_env[:status]
41
41
 
42
42
  if log_bodies(status)
43
43
  bodies = [
44
- ['request', request_body, request_env.request_headers],
45
- ['response', response_env.body, response_env.response_headers]
44
+ ['request', request_body, request_env[:request_headers]],
45
+ ['response', response_env[:body], response_env[:response_headers]]
46
46
  ].map do |(role, body_s, headers)|
47
47
  body = Body.new(body_s, headers['Content-Type'])
48
48
  if body.content_type_attrs.text?
@@ -62,12 +62,12 @@ module ApiHammer
62
62
  'request' => {
63
63
  'method' => request_env[:method],
64
64
  'uri' => request_env[:url].normalize.to_s,
65
- 'headers' => request_env.request_headers,
65
+ 'headers' => request_env[:request_headers],
66
66
  'body' => bodies['request'],
67
67
  }.reject{|k,v| v.nil? },
68
68
  'response' => {
69
69
  'status' => status.to_s,
70
- 'headers' => response_env.response_headers,
70
+ 'headers' => response_env[:response_headers],
71
71
  'body' => bodies['response'],
72
72
  }.reject{|k,v| v.nil? },
73
73
  'processing' => {
@@ -19,7 +19,7 @@ module ApiHammer::Rails
19
19
  attr_reader :body, :render_options
20
20
  end
21
21
 
22
- unless @rails_halt_included_defined
22
+ unless instance_variable_defined?(:@rails_halt_included_defined)
23
23
  @rails_halt_included_defined = true
24
24
  (@on_included ||= Set.new) << proc do |controller_class|
25
25
  controller_class.send(:rescue_from, ApiHammer::Rails::Halt, :with => :handle_halt)
@@ -13,7 +13,7 @@ module ApiHammer
13
13
  end
14
14
  end
15
15
 
16
- unless @sinatra_included_defined
16
+ unless instance_variable_defined?(:@sinatra_included_defined)
17
17
  @sinatra_included_defined = true
18
18
  (@on_included ||= Set.new) << proc do |klass|
19
19
  # set up self.supported_media_types
@@ -1,3 +1,3 @@
1
1
  module ApiHammer
2
- VERSION = "0.17.0"
2
+ VERSION = "0.18.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_hammer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-23 00:00:00.000000000 Z
11
+ date: 2017-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack