tweakphoeus 0.2.4 → 0.2.5

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: c559705b1a8be61ea4dd712269e678f414b89366
4
- data.tar.gz: 40113de0918d344bcd5c1509d2de47201847b898
3
+ metadata.gz: a0d00e51c1f23ccb8e4a7b63c95eeda5d0856351
4
+ data.tar.gz: 94851c8ea6f3cc3cb05c8063a94aef03175c9104
5
5
  SHA512:
6
- metadata.gz: 18b4d577efb3e12e97b53953b629e305f615ede255a7e241521ab568b13ecd4eca6247f90d6d44a1b3c1331d77ef6f2249a5666139d97b78f74c214cf87f9fa3
7
- data.tar.gz: 6b7b9445bf2b808234e9532f7b4ca8b1ed69b454e304a05de38f34fa9f05b6544efd8a3f10d208aa422d1617f6aa8586e3375dd6b498ef29169f2da3731e6685
6
+ metadata.gz: fc5ab5a5d781d861fcef932054258a73d956fe81b457e577a96ffef678c12742657ccc76611a75fe081da12114b3093cdd55c262e086359a6e090a88bb1bc047
7
+ data.tar.gz: f31f18ebe3129cd53b0f9b6ab099da3b3d2c0a7aec0e91a335571729705ddd98f53dd1ca844ab794d5f13e0a26de47a9eb3748e90d51aab84a7583b44c5b1f7e
data/CHANGELOG.md CHANGED
@@ -4,3 +4,4 @@
4
4
  -- v0.2.2 - delete method added, thanks @pablobfonseca
5
5
  -- v0.2.3 - adding parameter params in order to handle in_url parameters
6
6
  -- v0.2.4 - adding parametes to post requests
7
+ -- v0.2.5 - adding public method cookie_string
@@ -1,3 +1,3 @@
1
1
  module Tweakphoeus
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
data/lib/tweakphoeus.rb CHANGED
@@ -59,11 +59,28 @@ module Tweakphoeus
59
59
  @referer.last
60
60
  end
61
61
 
62
+ def cookie_string(url, headers={})
63
+ domain = get_domain(url)
64
+ headers ||= {}
65
+ cookies = parse_cookie(headers["Cookie"])
66
+
67
+ while domain.present?
68
+ if @cookie_jar[domain]
69
+ @cookie_jar[domain].each do |key, value|
70
+ cookies[key] ||= value
71
+ end
72
+ end
73
+ domain = domain.gsub(/^([^\.]+\.?)/, '')
74
+ end
75
+
76
+ cookies.map{ |key, value| "#{key}=#{value}" }.join('; ')
77
+ end
78
+
62
79
  private
63
80
 
64
81
  def http_request(url, body: nil, params: nil, headers: nil, redirect: false, method: method)
65
82
  request_headers = merge_default_headers(headers)
66
- request_headers["Cookie"] = inject_cookies(url, headers)
83
+ request_headers["Cookie"] = cookie_string(url, headers)
67
84
  request_headers["Referer"] = get_referer
68
85
  response = Typhoeus.send(method, url, body: body, params: params, headers: request_headers)
69
86
  obtain_cookies(response)
@@ -114,27 +131,12 @@ module Tweakphoeus
114
131
  end
115
132
  end
116
133
 
117
- def inject_cookies url, headers
118
- domain = get_domain(url)
119
- headers ||= {}
120
- cookies = parse_cookie(headers["Cookie"])
121
-
122
- while domain.split(".").count > 1
123
- if @cookie_jar[domain]
124
- cookies = @cookie_jar[domain].merge(cookies)
125
- end
126
- domain = domain.split(".")[1..-1].join(".")
127
- end
128
-
129
- cookies.map{|k,v| "#{k}=#{v}"}.join('; ')
130
- end
131
-
132
- def parse_cookie cookie_string
134
+ def parse_cookie(string)
133
135
  cookies = {}
134
136
 
135
- if cookie_string.is_a?(String)
136
- cookie_string.split(';').each do |string|
137
- key, value = string.split('=')
137
+ if string.is_a?(String)
138
+ string.split(';').each do |part|
139
+ key, value = part.split('=')
138
140
  key.strip!
139
141
  cookies[key.strip] = value if value && !["Domain","Path","domain","path"].include?(key)
140
142
  end
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.2.4
4
+ version: 0.2.5
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: 2016-11-15 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.5.1
123
+ rubygems_version: 2.6.8
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Typhoeus on steroids.