api_hammer 0.17.0 → 0.18.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
  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