puffing-billy 0.4.0 → 0.4.1
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 +4 -4
- data/CHANGELOG.md +7 -1
- data/Gemfile.lock +1 -1
- data/lib/billy/handlers/cache_handler.rb +2 -1
- data/lib/billy/handlers/proxy_handler.rb +3 -2
- data/lib/billy/handlers/stub_handler.rb +2 -1
- data/lib/billy/json_utils.rb +1 -2
- data/lib/billy/proxy.rb +0 -1
- data/lib/billy/proxy_connection.rb +2 -2
- data/lib/billy/version.rb +1 -1
- data/lib/tasks/billy.rake +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6557e02e504855ec7a7776eeee317695021c9e50
|
4
|
+
data.tar.gz: c25a26247ee30db7daa8158f739503b19848615f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94a428edbe74084084326f1daad96992928f8c22dcc6e52d0c95bc153e3d4296bd754f3bd3dfb02d1a435729e62e46726f5ed772fd6a646ce9c8e95a1ae0452d
|
7
|
+
data.tar.gz: c0d6395651e775a9bde1a67cb164617fceb901baa758e204dc4fc5adea37932cd68a0095471906f5d31fbaae3868c9b9092d4cd8e43705553f781d1266836357
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
+
v0.4.1, 2015-01-02
|
2
|
+
------------------
|
3
|
+
|
4
|
+
* Use Addressable for all URI parsing
|
5
|
+
|
1
6
|
v0.4.0, 2015-01-02
|
7
|
+
------------------
|
2
8
|
|
3
9
|
* Add new configuration to merge cache hits by URL regex (#76)
|
4
10
|
* Allow pipes in URLs by switching to Addressable (#84)
|
@@ -16,7 +22,7 @@ v0.3.0, 2014-12-29
|
|
16
22
|
* Adds EventMachine timeout configuration (#57)
|
17
23
|
* Support dynamic jsonp with params (#58)
|
18
24
|
* Writing error messages to the logger rather than stdout (#69)
|
19
|
-
*
|
25
|
+
* Do not recommend changing javascript_driver config (#70)
|
20
26
|
* README link pointing at wrong target (#73)
|
21
27
|
* Adding example config to README for playing nicely with Webmock, VCR (#74)
|
22
28
|
* Make dynamic_jsonp regex less brittle (#81)
|
data/Gemfile.lock
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'billy/handlers/handler'
|
2
|
+
require 'addressable/uri'
|
2
3
|
require 'cgi'
|
3
4
|
|
4
5
|
module Billy
|
@@ -35,7 +36,7 @@ module Billy
|
|
35
36
|
private
|
36
37
|
|
37
38
|
def replace_response_callback(response, url)
|
38
|
-
request_uri = URI
|
39
|
+
request_uri = Addressable::URI.parse(url)
|
39
40
|
if request_uri.query
|
40
41
|
params = CGI::parse(request_uri.query)
|
41
42
|
if params['callback'].any? and response[:content].match(/\w+\(/)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'billy/handlers/handler'
|
2
|
+
require 'addressable/uri'
|
2
3
|
require 'eventmachine'
|
3
4
|
require 'em-synchrony/em-http'
|
4
5
|
|
@@ -73,7 +74,7 @@ module Billy
|
|
73
74
|
def disabled_request?(url)
|
74
75
|
return false unless Billy.config.non_whitelisted_requests_disabled
|
75
76
|
|
76
|
-
uri = URI(url)
|
77
|
+
uri = Addressable::URI.parse(url)
|
77
78
|
# In isolated environments, you may want to stop the request from happening
|
78
79
|
# or else you get "getaddrinfo: Name or service not known" errors
|
79
80
|
blacklisted_path?(uri.path) || !whitelisted_url?(uri)
|
@@ -86,7 +87,7 @@ module Billy
|
|
86
87
|
def cacheable?(url, headers, status)
|
87
88
|
return false unless Billy.config.cache
|
88
89
|
|
89
|
-
url = URI(url)
|
90
|
+
url = Addressable::URI.parse(url)
|
90
91
|
# Cache the responses if they aren't whitelisted host[:port]s but always cache blacklisted paths on any hosts
|
91
92
|
cacheable_status?(status) && (!whitelisted_url?(url) || blacklisted_path?(url.path))
|
92
93
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'billy/handlers/handler'
|
2
|
+
require 'addressable/uri'
|
2
3
|
|
3
4
|
module Billy
|
4
5
|
class StubHandler
|
@@ -7,7 +8,7 @@ module Billy
|
|
7
8
|
def handle_request(method, url, headers, body)
|
8
9
|
if handles_request?(method, url, headers, body)
|
9
10
|
if (stub = find_stub(method, url))
|
10
|
-
query_string = URI.parse(url).query || ""
|
11
|
+
query_string = Addressable::URI.parse(url).query || ""
|
11
12
|
params = CGI.parse(query_string)
|
12
13
|
stub.call(params, headers, body).tap do |response|
|
13
14
|
Billy.log(:info, "puffing-billy: STUB #{method} for '#{url}'")
|
data/lib/billy/json_utils.rb
CHANGED
data/lib/billy/proxy.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'uri'
|
1
|
+
require 'addressable/uri'
|
2
2
|
require 'eventmachine'
|
3
3
|
require 'http/parser'
|
4
4
|
require 'em-http'
|
@@ -36,7 +36,7 @@ module Billy
|
|
36
36
|
restart_with_ssl(@parser.request_url)
|
37
37
|
else
|
38
38
|
if @ssl
|
39
|
-
uri = URI.parse(@parser.request_url)
|
39
|
+
uri = Addressable::URI.parse(@parser.request_url)
|
40
40
|
@url = "https://#{@ssl}#{[uri.path,uri.query].compact.join('?')}"
|
41
41
|
else
|
42
42
|
@url = @parser.request_url
|
data/lib/billy/version.rb
CHANGED
data/lib/tasks/billy.rake
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'addressable/uri'
|
2
|
+
|
1
3
|
namespace :cache do
|
2
4
|
|
3
5
|
desc 'Print out all cache file information'
|
@@ -57,7 +59,7 @@ namespace :cache do
|
|
57
59
|
|
58
60
|
Dir.glob(cache_path+file_pattern) do |filename|
|
59
61
|
data = load_cache_file(filename)
|
60
|
-
url = URI(data[:url])
|
62
|
+
url = Addressable::URI.parse(data[:url])
|
61
63
|
data[:url_path] = "#{url.path}#{url.query ? '?'+url.query : ''}#{url.fragment ? '#'+url.fragment : ''}"
|
62
64
|
data[:filename] = filename.gsub(Rails.root.to_s+'/','')
|
63
65
|
cache_array << data
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puffing-billy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Olly Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|