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