tweakphoeus 0.0.3 → 0.1.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: f9cdc0cacc3d2f0689e958d15ec999d95a87b4ea
4
- data.tar.gz: bb6e1c45b16dc0972e77e1f145a45698a99a4e98
3
+ metadata.gz: ea8b67191906a4405d2a281b65bebe605b75b47a
4
+ data.tar.gz: f00524b1660e48dd48367f273fb59daba447cc73
5
5
  SHA512:
6
- metadata.gz: f15a18722d99609541692e9d067e20092317b41d57b41a7393a156125cf6a28399ea701d2141db6305efa94f4536c71055d4f9cafab1d88ab7bfe1c3c5b25e57
7
- data.tar.gz: a0be461a8f38f4da5178d769d9f9e0e401a82dee0b2d861f4f1364b9dbd7cc2cc7357f2b51a51f82f14ee0313c8df70feb09b05ddce27749247a83b5b2538271
6
+ metadata.gz: c92ea3ec329f44879363f3411f4953f8b70a5492938b42b07ebbdaa4d82a551ab8aff5b5d951106933c0402dc151bfef4c83092d15118dc92c59e49f7f807ac4
7
+ data.tar.gz: 22c40a0112be9ebc97f62f3a57d712e4760c448260447cf69f9be491db08b7a4b9eb82eab11f35b96416f4cf40a20f30bdabaedc995b3ee32862be8aeed4a327
data/.gitignore CHANGED
@@ -7,4 +7,8 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
- .gem
10
+ *.gem
11
+
12
+ #*
13
+ *#
14
+ .#*
data/CHANGELOG.md ADDED
@@ -0,0 +1 @@
1
+ -- v0.1.0 - First stable version: Typhoeus dependency version updated
@@ -1,3 +1,3 @@
1
1
  module Tweakphoeus
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/tweakphoeus.rb CHANGED
@@ -9,18 +9,18 @@ module Tweakphoeus
9
9
  @cookie_jar = {}
10
10
  end
11
11
 
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
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 url, body: nil, headers: nil, redirect: false
21
- inject_cookies url, headers
22
- response = Typhoeus.get url, body: body, headers: headers
23
- obtain_cookies response
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(/^([^=]+)=([^;]+)/).to_a[1..-1]
53
- domain = cookie.match(/domain=([^;]+)/)
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
- @cookie_jar[domain] = [] if @cookie_jar[domain].nil?
62
- @cookie_jar[domain] << {key => value}
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
- cookies << @cookie_jar[domain] if @cookie_jar[domain]
74
- cookies << @cookie_jar["." + domain] if @cookie_jar["." + domain]
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["Set-Cookie"] = cookies.flatten
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.8.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.3
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: 2015-12-15 00:00:00.000000000 Z
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.8.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.8.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.4.8
117
+ rubygems_version: 2.5.1
117
118
  signing_key:
118
119
  specification_version: 4
119
120
  summary: Typhoeus on steroids.