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 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.