http-cookie 1.0.0.pre5 → 1.0.0.pre6
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/lib/http/cookie.rb +7 -5
- data/lib/http/cookie/version.rb +1 -1
- data/lib/http/cookie_jar/yaml_saver.rb +31 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 552b1f843786c58092655dff1e2587bafd65c995
|
4
|
+
data.tar.gz: ead56fc0cdda0ee554a8826eaab35e4b665c7e8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab0a84bce856ce0bde5b0200fe311c06875b9507a88c8829ff4e2a43db33a482ffc04ffbfb102caf30ca2af1528b2d1d42e6728ec2a4604aac7dc4107786da2d
|
7
|
+
data.tar.gz: 4747df38af92f497d315840aa706742d5ac8b3514247f3b85955b7d9f8df696689349c4d7cf8bdbd4f81de1b16e4bf16f671c13df0860b3513c56b7a94268b61
|
data/lib/http/cookie.rb
CHANGED
@@ -170,7 +170,7 @@ class HTTP::Cookie
|
|
170
170
|
raise ArgumentError, "wrong number of arguments (#{args.size} for 1-3)"
|
171
171
|
end
|
172
172
|
for_domain = false
|
173
|
-
origin = nil
|
173
|
+
max_age = origin = nil
|
174
174
|
attr_hash.each_pair { |key, val|
|
175
175
|
skey = key.to_s.downcase
|
176
176
|
if skey.sub!(/\?\z/, '')
|
@@ -181,18 +181,20 @@ class HTTP::Cookie
|
|
181
181
|
for_domain = !!val
|
182
182
|
when 'origin'
|
183
183
|
origin = val
|
184
|
+
when 'max_age'
|
185
|
+
# Let max_age take precedence over expires
|
186
|
+
max_age = val if val
|
184
187
|
else
|
185
188
|
setter = :"#{skey}="
|
186
|
-
|
189
|
+
__send__(setter, val) if respond_to?(setter)
|
187
190
|
end
|
188
191
|
}
|
189
192
|
if @name.nil? || @value.nil?
|
190
193
|
raise ArgumentError, "at least name and value must be specified"
|
191
194
|
end
|
192
195
|
@for_domain = for_domain
|
193
|
-
if origin
|
194
|
-
|
195
|
-
end
|
196
|
+
self.origin = origin if origin
|
197
|
+
self.max_age = max_age if max_age
|
196
198
|
end
|
197
199
|
|
198
200
|
autoload :Scanner, 'http/cookie/scanner'
|
data/lib/http/cookie/version.rb
CHANGED
@@ -11,19 +11,42 @@ class HTTP::CookieJar::YAMLSaver < HTTP::CookieJar::AbstractSaver
|
|
11
11
|
def load(io, jar)
|
12
12
|
begin
|
13
13
|
data = YAML.load(io)
|
14
|
-
rescue ArgumentError
|
15
|
-
|
16
|
-
|
14
|
+
rescue ArgumentError => e
|
15
|
+
case e.message
|
16
|
+
when %r{\Aundefined class/module Mechanize::}
|
17
|
+
# backward compatibility with Mechanize::Cookie
|
18
|
+
begin
|
19
|
+
io.rewind # hopefully
|
20
|
+
yaml = io.read
|
21
|
+
# a gross hack
|
22
|
+
yaml.gsub!(%r{^( [^ ].*:) !ruby/object:Mechanize::Cookie$}, "\\1")
|
23
|
+
data = YAML.load(yaml)
|
24
|
+
rescue Errno::ESPIPE
|
25
|
+
@logger.warn "could not rewind the stream for conversion" if @logger
|
26
|
+
rescue ArgumentError
|
27
|
+
end
|
28
|
+
end
|
17
29
|
end
|
18
30
|
|
19
|
-
|
31
|
+
case data
|
32
|
+
when Array
|
33
|
+
data.each { |cookie|
|
34
|
+
jar.add(cookie)
|
35
|
+
}
|
36
|
+
when Hash
|
37
|
+
# backward compatibility with Mechanize::Cookie
|
38
|
+
data.each { |domain, paths|
|
39
|
+
paths.each { |path, names|
|
40
|
+
names.each { |cookie_name, cookie_hash|
|
41
|
+
cookie = HTTP::Cookie.new(cookie_hash)
|
42
|
+
jar.add(cookie)
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
else
|
20
47
|
@logger.warn "incompatible YAML cookie data discarded" if @logger
|
21
48
|
return
|
22
49
|
end
|
23
|
-
|
24
|
-
data.each { |cookie|
|
25
|
-
jar.add(cookie)
|
26
|
-
}
|
27
50
|
end
|
28
51
|
|
29
52
|
private
|