tweakphoeus 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -1
- data/CHANGELOG.md +1 -0
- data/lib/tweakphoeus/version.rb +1 -1
- data/lib/tweakphoeus.rb +28 -16
- data/tweakphoeus.gemspec +2 -3
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea8b67191906a4405d2a281b65bebe605b75b47a
|
4
|
+
data.tar.gz: f00524b1660e48dd48367f273fb59daba447cc73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c92ea3ec329f44879363f3411f4953f8b70a5492938b42b07ebbdaa4d82a551ab8aff5b5d951106933c0402dc151bfef4c83092d15118dc92c59e49f7f807ac4
|
7
|
+
data.tar.gz: 22c40a0112be9ebc97f62f3a57d712e4760c448260447cf69f9be491db08b7a4b9eb82eab11f35b96416f4cf40a20f30bdabaedc995b3ee32862be8aeed4a327
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
-- v0.1.0 - First stable version: Typhoeus dependency version updated
|
data/lib/tweakphoeus/version.rb
CHANGED
data/lib/tweakphoeus.rb
CHANGED
@@ -9,18 +9,18 @@ module Tweakphoeus
|
|
9
9
|
@cookie_jar = {}
|
10
10
|
end
|
11
11
|
|
12
|
-
def get
|
13
|
-
inject_cookies
|
14
|
-
response = Typhoeus.get
|
15
|
-
obtain_cookies
|
12
|
+
def get(url, body: nil, headers: nil, redirect: true)
|
13
|
+
inject_cookies(url, headers)
|
14
|
+
response = Typhoeus.get(url, body: body, headers: headers)
|
15
|
+
obtain_cookies(response)
|
16
16
|
response = get(redirect_url(response), body: body, headers: headers) if redirect && has_redirect?(response)
|
17
17
|
response
|
18
18
|
end
|
19
19
|
|
20
|
-
def post
|
21
|
-
inject_cookies
|
22
|
-
response = Typhoeus.
|
23
|
-
obtain_cookies
|
20
|
+
def post(url, body: nil, headers: nil, redirect: false)
|
21
|
+
inject_cookies(url, headers)
|
22
|
+
response = Typhoeus.post(url, body: body, headers: headers)
|
23
|
+
obtain_cookies(response)
|
24
24
|
response = post(redirect_url(response), body: body, headers: headers) if redirect && has_redirect?(response)
|
25
25
|
response
|
26
26
|
end
|
@@ -32,6 +32,7 @@ module Tweakphoeus
|
|
32
32
|
def add_cookies host, key, value
|
33
33
|
domain = get_domain host
|
34
34
|
@cookie_jar[domain] = [] if @cookie_jar[domain].nil?
|
35
|
+
@cookie_jar[domain] = @cookie_jar[domain].reject{|hash| hash.first[0]==key}
|
35
36
|
@cookie_jar[domain] << {key => value}
|
36
37
|
end
|
37
38
|
|
@@ -49,8 +50,8 @@ module Tweakphoeus
|
|
49
50
|
end
|
50
51
|
|
51
52
|
set_cookies_field.each do |cookie|
|
52
|
-
key, value = cookie.match(/^([^=]+)=([^;]
|
53
|
-
domain = cookie.match(/
|
53
|
+
key, value = cookie.match(/^([^=]+)=([^;].+)/).to_a[1..-1]
|
54
|
+
domain = cookie.match(/Domain=([^;]+)/)
|
54
55
|
|
55
56
|
if domain.nil?
|
56
57
|
domain = get_domain response.request.url
|
@@ -58,24 +59,31 @@ module Tweakphoeus
|
|
58
59
|
domain = domain[1]
|
59
60
|
end
|
60
61
|
|
61
|
-
|
62
|
-
|
62
|
+
if value != "\"\""
|
63
|
+
@cookie_jar[domain] = [] if @cookie_jar[domain].nil?
|
64
|
+
@cookie_jar[domain] = @cookie_jar[domain].reject{|hash| hash.first[0]==key}
|
65
|
+
@cookie_jar[domain] << {key => value}
|
66
|
+
end
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
66
70
|
def inject_cookies url, headers
|
67
71
|
domain = get_domain url
|
68
|
-
domain = domain.gsub("www.","")
|
69
72
|
headers = {} if headers.nil?
|
70
73
|
cookies = []
|
71
74
|
|
72
75
|
while domain.split(".").count > 1
|
73
|
-
|
74
|
-
|
76
|
+
if @cookie_jar[domain]
|
77
|
+
@cookie_jar[domain].each do |cookie|
|
78
|
+
if !cookie.in?(cookies.map{|k,v| k})
|
79
|
+
cookies << cookie
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
75
83
|
domain = domain.split(".")[1..-1].join(".")
|
76
84
|
end
|
77
85
|
|
78
|
-
headers["
|
86
|
+
headers["Cookie"] = cookies.map{|hash| hash.map{|k,v| k + "=" + v}}.flatten.join('; ')
|
79
87
|
end
|
80
88
|
|
81
89
|
def has_redirect? response
|
@@ -85,5 +93,9 @@ module Tweakphoeus
|
|
85
93
|
def redirect_url response
|
86
94
|
response.headers["Location"]
|
87
95
|
end
|
96
|
+
|
97
|
+
def purge_bad_cookies cookies
|
98
|
+
cookies.reject{|e| e.first.last=="\"\""}
|
99
|
+
end
|
88
100
|
end
|
89
101
|
end
|
data/tweakphoeus.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
|
12
12
|
spec.summary = %q{Typhoeus on steroids.}
|
13
13
|
spec.description = %q{Typhoeus wrapper with new pretty things: cookie handler for example.}
|
14
|
-
spec.homepage = ""
|
14
|
+
spec.homepage = "https://github.com/basestylo/Tweakphoeus/"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
@@ -27,8 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency 'typhoeus', "~> 0.
|
31
|
-
|
30
|
+
spec.add_dependency 'typhoeus', "~> 1.0.1"
|
32
31
|
spec.add_development_dependency "bundler", "~> 1.10"
|
33
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
33
|
spec.add_development_dependency "rspec", "~> 3.0", "> 3.0.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tweakphoeus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Martin Garcia
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 1.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 1.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- ".gitignore"
|
83
83
|
- ".rspec"
|
84
84
|
- ".travis.yml"
|
85
|
+
- CHANGELOG.md
|
85
86
|
- CODE_OF_CONDUCT.md
|
86
87
|
- Gemfile
|
87
88
|
- LICENSE.txt
|
@@ -92,7 +93,7 @@ files:
|
|
92
93
|
- lib/tweakphoeus.rb
|
93
94
|
- lib/tweakphoeus/version.rb
|
94
95
|
- tweakphoeus.gemspec
|
95
|
-
homepage:
|
96
|
+
homepage: https://github.com/basestylo/Tweakphoeus/
|
96
97
|
licenses:
|
97
98
|
- MIT
|
98
99
|
metadata:
|
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
114
|
version: '0'
|
114
115
|
requirements: []
|
115
116
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.5.1
|
117
118
|
signing_key:
|
118
119
|
specification_version: 4
|
119
120
|
summary: Typhoeus on steroids.
|