http-cookie 1.0.0.pre5 → 1.0.0.pre6

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: 1408cc3e70e90afc3e4b6d551ba267d7200c10d2
4
- data.tar.gz: 16c472328a43e4dff5a38950c1e00e9b94752f55
3
+ metadata.gz: 552b1f843786c58092655dff1e2587bafd65c995
4
+ data.tar.gz: ead56fc0cdda0ee554a8826eaab35e4b665c7e8a
5
5
  SHA512:
6
- metadata.gz: 9975b81bc25d42bb7c66bda5b5ae295d5ed81221837dcd5671fecd93ae6ae696f2dc33351fc90587d00b300e3acd7aaefadc7e97d468246a4e2b91726c06f838
7
- data.tar.gz: 3ba7482d059551e5b11a929c53f5f79a45953ac09c32282dfa80f5c99f05a742569dc40a592fe0f48858fc31f846853a34f2909b6cbf6f2c22f74717b2278865
6
+ metadata.gz: ab0a84bce856ce0bde5b0200fe311c06875b9507a88c8829ff4e2a43db33a482ffc04ffbfb102caf30ca2af1528b2d1d42e6728ec2a4604aac7dc4107786da2d
7
+ data.tar.gz: 4747df38af92f497d315840aa706742d5ac8b3514247f3b85955b7d9f8df696689349c4d7cf8bdbd4f81de1b16e4bf16f671c13df0860b3513c56b7a94268b61
@@ -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
- send(setter, val) if respond_to?(setter)
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
- self.origin = origin
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'
@@ -1,5 +1,5 @@
1
1
  module HTTP
2
2
  class Cookie
3
- VERSION = "1.0.0.pre5"
3
+ VERSION = "1.0.0.pre6"
4
4
  end
5
5
  end
@@ -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
- @logger.warn "unloadable YAML cookie data discarded" if @logger
16
- return
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
- unless data.instance_of?(Array)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-cookie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre5
4
+ version: 1.0.0.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinori MUSHA