shb 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/shb/abstract_client.rb +36 -0
- data/lib/shb/version.rb +1 -1
- data/spec/debug_spec.rb +36 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdc3a72b6032d46883aed8f77e69cb31cb383b93
|
4
|
+
data.tar.gz: 08b208e4f0947c2e0c21c893f9ffbe46a7c6c7f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3885df3451532f906bc6c857d5cb2daa84f1b3311e034522096ca4af6f3aee71e2668c59a3cf1388d2319f63e560686e92a2d20a98caa1a7df7845d897f91bdf
|
7
|
+
data.tar.gz: 52781eb715d77113aa179d333761fbd35b6148522af22621689594c78e9546b6ed38741dad2713dcecdd916d0ab7a5655270d1116306ec3b069927ee1607b0d5
|
data/lib/shb/abstract_client.rb
CHANGED
@@ -19,6 +19,8 @@ module Shb
|
|
19
19
|
config.cycle_user_agent = false
|
20
20
|
config.use_cookies = false
|
21
21
|
config.logger = nil
|
22
|
+
config.debug = false
|
23
|
+
config.debug_log = nil
|
22
24
|
|
23
25
|
parser ::Shb::Parser
|
24
26
|
follow_redirects false
|
@@ -52,6 +54,7 @@ module Shb
|
|
52
54
|
cycle_user_agent!
|
53
55
|
set_cookies!
|
54
56
|
response = self.class.send(method, uri.to_s, options, &block)
|
57
|
+
debug!(method, uri, options, response)
|
55
58
|
save_cookies!(response)
|
56
59
|
cache_write(response, uri, options)
|
57
60
|
end
|
@@ -72,6 +75,39 @@ module Shb
|
|
72
75
|
logger.info "#{method.to_s.upcase} #{uri.to_s}#{options[:query].nil? ? nil : "?#{HashConversions.to_params(options[:query])}"}"
|
73
76
|
end
|
74
77
|
|
78
|
+
#
|
79
|
+
def debug!(method, uri, options, response)
|
80
|
+
return unless config.debug
|
81
|
+
|
82
|
+
io = if config.debug_log
|
83
|
+
File.open(config.debug_log, 'a')
|
84
|
+
elsif defined?(::Rails)
|
85
|
+
File.open(File.join(::Rails.root, 'log', 'shb-debug.log'), 'a')
|
86
|
+
else
|
87
|
+
STDERR
|
88
|
+
end
|
89
|
+
|
90
|
+
io.puts
|
91
|
+
io.puts ">>>>>>>>>> #{response.request.http_method::METHOD} #{response.request.last_uri.to_s}"
|
92
|
+
response.request.options[:headers].sort.each do |k,v|
|
93
|
+
io.puts "#{k}: #{v}"
|
94
|
+
end
|
95
|
+
io.puts
|
96
|
+
io.puts response.request.options[:body]
|
97
|
+
|
98
|
+
io.puts
|
99
|
+
io.puts "<<<<<<<<<< #{response.code} #{response.message}"
|
100
|
+
response.headers.sort.each do |k,v|
|
101
|
+
io.puts "#{k}: #{v}"
|
102
|
+
end
|
103
|
+
io.puts
|
104
|
+
io.puts response.body
|
105
|
+
io.puts
|
106
|
+
ensure
|
107
|
+
io.close if io.is_a? File # Don't close STDERR
|
108
|
+
end
|
109
|
+
|
110
|
+
|
75
111
|
#
|
76
112
|
def cycle_user_agent!
|
77
113
|
return unless config.cycle_user_agent
|
data/lib/shb/version.rb
CHANGED
data/spec/debug_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
describe Shb::Client do
|
5
|
+
before do
|
6
|
+
stub_request(:any, 'supremegolf.com')
|
7
|
+
end
|
8
|
+
|
9
|
+
it "does not debug by default" do
|
10
|
+
shb = Shb::Client.new
|
11
|
+
tmpfile = Tempfile.new('shb-debug')
|
12
|
+
shb.class.config.debug_log = tmpfile.path
|
13
|
+
expect(File).not_to receive(:open).with(tmpfile.path, 'a')
|
14
|
+
shb.get('/')
|
15
|
+
end
|
16
|
+
|
17
|
+
it "debug to specified logfile" do
|
18
|
+
shb = Shb::Client.new
|
19
|
+
tmpfile = Tempfile.new('shb-debug')
|
20
|
+
shb.class.config.debug = true
|
21
|
+
shb.class.config.debug_log = tmpfile.path
|
22
|
+
expect(File).to receive(:open).with(tmpfile.path, 'a').and_call_original
|
23
|
+
shb.get('/')
|
24
|
+
end
|
25
|
+
|
26
|
+
it "debug to STDERR" do
|
27
|
+
shb = Shb::Client.new
|
28
|
+
tmpfile = Tempfile.new('shb-debug')
|
29
|
+
shb.class.config.debug = true
|
30
|
+
shb.class.config.debug_log = nil
|
31
|
+
expect(STDERR).to receive(:puts).at_least(:twice).and_call_original
|
32
|
+
shb.get('/')
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Hallstrom
|
@@ -130,6 +130,7 @@ files:
|
|
130
130
|
- shb.gemspec
|
131
131
|
- spec/cache_spec.rb
|
132
132
|
- spec/cycle_user_agent_spec.rb
|
133
|
+
- spec/debug_spec.rb
|
133
134
|
- spec/html_spec.rb
|
134
135
|
- spec/json_spec.rb
|
135
136
|
- spec/logger_spec.rb
|
@@ -164,6 +165,7 @@ summary: ''
|
|
164
165
|
test_files:
|
165
166
|
- spec/cache_spec.rb
|
166
167
|
- spec/cycle_user_agent_spec.rb
|
168
|
+
- spec/debug_spec.rb
|
167
169
|
- spec/html_spec.rb
|
168
170
|
- spec/json_spec.rb
|
169
171
|
- spec/logger_spec.rb
|