http-cookie 1.0.0.pre3 → 1.0.0.pre4

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: 38b7c03ef15bbe6b866f7128b719962c7776fa16
4
- data.tar.gz: 79078f90e4250e68ec2fa0b6250ee378d7681aea
3
+ metadata.gz: b4b4b558d9627051478d3ea9e33579ffedadbe50
4
+ data.tar.gz: 1c3bfc5bd3379d934cc4aeda4211ad339d4ac9dc
5
5
  SHA512:
6
- metadata.gz: 41d93c054cda8e2fbb07554de72061fcf6218da13dce541fda0581056315b0d0438307c1f95043d59bce7742e4cee08ea9295f75c7fc1ddf297849cf7ed87ee0
7
- data.tar.gz: a9cebb93040062c160bccf8758a25898af16f8b8fc2e5118a5cfb7210ba96b2f212b8154ca2b4e1fb1e2e740a5efaffd515bd9addc0ddee3be94d6e93e89f7f9
6
+ metadata.gz: a5b077b1f4220e1a6c5dc9454f498d2d0757d55584ebad1b19a9f565ab5d91070a519b6c1f75b8118e88efd0542614bc5b15282952bbf12d29bdff9daacacb0c
7
+ data.tar.gz: f16235e47faae4d97c500ea2ccea5c9a7fc3948c366906ce7ad1a09dd11474754b351a66919e34bbe3e6a9b87ec7f050d7ef3b5f84bb2004f56c2bed613ef4e9
data/README.md CHANGED
@@ -114,10 +114,10 @@ equivalent using `HTTP::Cookie`:
114
114
  - `Mechanize::CookieJar#jar`
115
115
 
116
116
  There is no direct access to the internal hash in
117
- `HTTP::CookieJar` since it has introduced an abstract storage
118
- layer. If you want to tweak the internals of the hash storage,
119
- try creating a new storage class referring to the default storage
120
- class `HTTP::CookieJar::HashStore`.
117
+ `HTTP::CookieJar` since it has introduced an abstract store layer.
118
+ If you want to tweak the internals of the hash store, try creating
119
+ a new store class referring to the default store class
120
+ `HTTP::CookieJar::HashStore`.
121
121
 
122
122
  If you desperately need it you can access it by
123
123
  `jar.store.instance_variable_get(:@jar)`, but there is no
data/lib/http/cookie.rb CHANGED
@@ -38,7 +38,8 @@ class HTTP::Cookie
38
38
  name value
39
39
  domain for_domain path
40
40
  secure httponly
41
- expires created_at accessed_at
41
+ expires max_age
42
+ created_at accessed_at
42
43
  ]
43
44
 
44
45
  if String.respond_to?(:try_convert)
@@ -110,8 +111,8 @@ class HTTP::Cookie
110
111
  # The setter method accepts a Time object, a string representation
111
112
  # of date/time, or `nil`.
112
113
  #
113
- # Note that #max_age and #expires are mutually exclusive. Setting
114
- # \#max_age resets #expires to nil, and vice versa.
114
+ # Setting this value resets #max_age to nil. When #max_age is
115
+ # non-nil, #expires returns `created_at + max_age`.
115
116
  #
116
117
  # :attr_accessor: expires
117
118
 
@@ -122,8 +123,7 @@ class HTTP::Cookie
122
123
  # represents an integer which will be stringified and then
123
124
  # integerized using #to_i.
124
125
  #
125
- # Note that #max_age and #expires are mutually exclusive. Setting
126
- # \#max_age resets #expires to nil, and vice versa.
126
+ # This value is reset to nil when #expires= is called.
127
127
  #
128
128
  # :attr_accessor: max_age
129
129
 
@@ -232,22 +232,17 @@ class HTTP::Cookie
232
232
  # given origin is not allowed to issue is not included in the
233
233
  # resulted array.
234
234
  #
235
- # Any Max-Age attribute value found is converted to an expires
236
- # value computing from the current time so that expiration check
237
- # (#expired?) can be performed.
238
- #
239
235
  # If a block is given, each cookie object is passed to the block.
240
236
  #
241
237
  # Available option keywords are below:
242
238
  #
243
- # `origin`
239
+ # :origin
244
240
  # : The cookie's origin URI/URL
245
241
  #
246
- # `date`
247
- # : The base date used for interpreting Max-Age attribute values
248
- # instead of the current time
242
+ # :created_at
243
+ # : The creation time of the cookies parsed.
249
244
  #
250
- # `logger`
245
+ # :logger
251
246
  # : Logger object useful for debugging
252
247
  #
253
248
  # ### Compatibility Note for Mechanize::Cookie users
@@ -271,9 +266,8 @@ class HTTP::Cookie
271
266
  if options
272
267
  logger = options[:logger]
273
268
  origin = options[:origin] and origin = URI(origin)
274
- date = options[:date]
269
+ created_at = options[:created_at]
275
270
  end
276
- date ||= Time.now
277
271
 
278
272
  [].tap { |cookies|
279
273
  s = Scanner.new(set_cookie, logger)
@@ -282,6 +276,7 @@ class HTTP::Cookie
282
276
  break if name.nil? || name.empty?
283
277
 
284
278
  cookie = new(name, value)
279
+ cookie.created_at = created_at if created_at
285
280
  attrs.each { |aname, avalue|
286
281
  begin
287
282
  case aname
@@ -311,10 +306,6 @@ class HTTP::Cookie
311
306
  end
312
307
  }
313
308
 
314
- # Have `expires` set instead of `max_age`, so that
315
- # expiration check (`expired?`) can be performed.
316
- cookie.expires = date + cookie.max_age if cookie.max_age
317
-
318
309
  if origin
319
310
  begin
320
311
  cookie.origin = origin
@@ -445,7 +436,9 @@ class HTTP::Cookie
445
436
  attr_reader :session
446
437
  alias session? session
447
438
 
448
- attr_reader :expires
439
+ def expires
440
+ @expires or @created_at && @max_age ? @created_at + @max_age : nil
441
+ end
449
442
 
450
443
  # See #expires.
451
444
  def expires=(t)
@@ -483,8 +476,11 @@ class HTTP::Cookie
483
476
 
484
477
  # Tests if this cookie is expired by now, or by a given time.
485
478
  def expired?(time = Time.now)
486
- return false unless @expires
487
- time > @expires
479
+ if expires = self.expires
480
+ expires <= time
481
+ else
482
+ false
483
+ end
488
484
  end
489
485
 
490
486
  # Expires this cookie by setting the expires attribute value to a
@@ -501,7 +497,8 @@ class HTTP::Cookie
501
497
  # The comment attribute.
502
498
  attr_accessor :comment
503
499
 
504
- # The time this cookie was created at.
500
+ # The time this cookie was created at. This value is used as a base
501
+ # date for interpreting the Max-Age attribute value. See #expires.
505
502
  attr_accessor :created_at
506
503
 
507
504
  # The time this cookie was last accessed at.
@@ -618,11 +615,16 @@ class HTTP::Cookie
618
615
 
619
616
  # YAML deserialization helper for Psych.
620
617
  def yaml_initialize(tag, map)
618
+ expires = nil
621
619
  map.each { |key, value|
622
620
  case key
621
+ when 'expires'
622
+ # avoid clobbering max_age
623
+ expires = value
623
624
  when *PERSISTENT_PROPERTIES
624
625
  __send__(:"#{key}=", value)
625
626
  end
626
627
  }
628
+ self.expires = expires if self.max_age.nil?
627
629
  end
628
630
  end
@@ -1,5 +1,5 @@
1
1
  module HTTP
2
2
  class Cookie
3
- VERSION = "1.0.0.pre3"
3
+ VERSION = "1.0.0.pre4"
4
4
  end
5
5
  end
@@ -1,3 +1,4 @@
1
+ # :markup: markdown
1
2
  require 'http/cookie'
2
3
 
3
4
  ##
@@ -10,18 +11,30 @@ class HTTP::CookieJar
10
11
 
11
12
  attr_reader :store
12
13
 
13
- # Generates a new cookie jar. The default store class is `:hash`,
14
- # which maps to `HTTP::CookieJar::HashStore`. Any given options are
15
- # passed through to the initializer of the specified store class.
16
- # For example, the `:mozilla` (`HTTP::CookieJar::MozillaStore`)
17
- # store class requires a `:filename` option.
18
- def initialize(store = :hash, options = nil)
19
- case store
14
+ # Generates a new cookie jar.
15
+ #
16
+ # Available option keywords are as below:
17
+ #
18
+ # :store
19
+ # : The store class that backs this jar. (default: `:hash`)
20
+ # A symbol or an instance of a store class is accepted. Symbols are
21
+ # mapped to store classes, like `:hash` to
22
+ # `HTTP::CookieJar::HashStore` and `:mozilla` to
23
+ # `HTTP::CookieJar::MozillaStore`.
24
+ #
25
+ # Any options given are passed through to the initializer of the
26
+ # specified store class. For example, the `:mozilla`
27
+ # (`HTTP::CookieJar::MozillaStore`) store class requires a
28
+ # `:filename` option. See individual store classes for details.
29
+ def initialize(options = nil)
30
+ opthash = {
31
+ :store => :hash,
32
+ }
33
+ opthash.update(options) if options
34
+ case store = opthash[:store]
20
35
  when Symbol
21
- @store = AbstractStore.implementation(store).new(options)
36
+ @store = AbstractStore.implementation(store).new(opthash)
22
37
  when AbstractStore
23
- options.empty? or
24
- raise ArgumentError, 'wrong number of arguments (%d for 1)' % (1 + options.size)
25
38
  @store = store
26
39
  else
27
40
  raise TypeError, 'wrong object given as cookie store: %s' % store.inspect
@@ -32,7 +45,7 @@ class HTTP::CookieJar
32
45
  @store = other.instance_eval { @store.dup }
33
46
  end
34
47
 
35
- # Adds a +cookie+ to the jar and return self. If a given cookie has
48
+ # Adds a cookie to the jar and return self. If a given cookie has
36
49
  # no domain or path attribute values and the origin is unknown,
37
50
  # ArgumentError is raised.
38
51
  #
@@ -71,7 +84,7 @@ class HTTP::CookieJar
71
84
  }.sort
72
85
  end
73
86
 
74
- # Tests if the jar is empty. If +url+ is given, tests if there is
87
+ # Tests if the jar is empty. If `url` is given, tests if there is
75
88
  # no cookie for the URL.
76
89
  def empty?(url = nil)
77
90
  if url
@@ -84,12 +97,12 @@ class HTTP::CookieJar
84
97
 
85
98
  # Iterates over all cookies that are not expired.
86
99
  #
87
- # An optional argument +uri+ specifies a URI/URL indicating the
100
+ # An optional argument `uri` specifies a URI/URL indicating the
88
101
  # destination of the cookies being selected. Every cookie yielded
89
102
  # should be good to send to the given URI,
90
103
  # i.e. cookie.valid_for_uri?(uri) evaluates to true.
91
104
  #
92
- # If (and only if) the +uri+ option is given, last access time of
105
+ # If (and only if) the `uri` option is given, last access time of
93
106
  # each cookie is updated to the current time.
94
107
  def each(uri = nil, &block)
95
108
  block_given? or return enum_for(__method__, uri)
@@ -114,16 +127,21 @@ class HTTP::CookieJar
114
127
  #
115
128
  # Available option keywords are below:
116
129
  #
117
- # * +format+
118
- # [<tt>:yaml</tt>]
119
- # YAML structure (default)
120
- # [<tt>:cookiestxt</tt>]
121
- # Mozilla's cookies.txt format
122
- # * +session+
123
- # [+true+]
124
- # Save session cookies as well.
125
- # [+false+]
126
- # Do not save session cookies. (default)
130
+ # * `:format`
131
+ # <dl class="rdoc-list note-list">
132
+ # <dt>:yaml</dt>
133
+ # <dd>YAML structure (default)</dd>
134
+ # <dt>:cookiestxt</dt>
135
+ # <dd>: Mozilla's cookies.txt format</dd>
136
+ # </dl>
137
+ #
138
+ # * `:session`
139
+ # <dl class="rdoc-list note-list">
140
+ # <dt>true</dt>
141
+ # <dd>Save session cookies as well.</dd>
142
+ # <dt>false</dt>
143
+ # <dd>Do not save session cookies. (default)</dd>
144
+ # </dl>
127
145
  #
128
146
  # All options given are passed through to the underlying cookie
129
147
  # saver module.
@@ -175,11 +193,13 @@ class HTTP::CookieJar
175
193
  #
176
194
  # Available option keywords are below:
177
195
  #
178
- # * +format+
179
- # [<tt>:yaml</tt>]
180
- # YAML structure (default)
181
- # [<tt>:cookiestxt</tt>]
182
- # Mozilla's cookies.txt format
196
+ # * `:format`
197
+ # <dl class="rdoc-list note-list">
198
+ # <dt>:yaml</dt>
199
+ # <dd>YAML structure (default)</dd>
200
+ # <dt>:cookiestxt</dt>
201
+ # <dd>: Mozilla's cookies.txt format</dd>
202
+ # </dl>
183
203
  #
184
204
  # All options given are passed through to the underlying cookie
185
205
  # saver module.
@@ -39,7 +39,7 @@ class HTTP::CookieJar::CookiestxtSaver < HTTP::CookieJar::AbstractSaver
39
39
  @for_domain ? True : False,
40
40
  @path,
41
41
  @secure ? True : False,
42
- @expires.to_i,
42
+ expires.to_i,
43
43
  @name,
44
44
  @value
45
45
  ]
@@ -9,7 +9,7 @@ end
9
9
  # :startdoc:
10
10
 
11
11
  class HTTP::CookieJar
12
- # A store class that uses a hash of hashes.
12
+ # A store class that uses a hash-based cookie store.
13
13
  class HashStore < AbstractStore
14
14
  def default_options
15
15
  {
@@ -17,20 +17,26 @@ class HTTP::CookieJar
17
17
  }
18
18
  end
19
19
 
20
+ # Generates a hash based cookie store.
21
+ #
22
+ # Available option keywords are as below:
23
+ #
24
+ # :gc_threshold
25
+ # : GC threshold; A GC happens when this many times cookies have
26
+ # been stored (default: `HTTP::Cookie::MAX_COOKIES_TOTAL / 20`)
20
27
  def initialize(options = nil)
21
28
  super
22
29
 
23
- @jar = {}
24
- # {
25
- # hostname => {
26
- # path => {
27
- # name => cookie,
28
- # ...
29
- # },
30
+ @jar = {
31
+ # hostname => {
32
+ # path => {
33
+ # name => cookie,
30
34
  # ...
31
35
  # },
32
36
  # ...
33
- # }
37
+ # },
38
+ # ...
39
+ }
34
40
 
35
41
  @gc_index = 0
36
42
  end
@@ -1,7 +1,10 @@
1
+ # :markup: markdown
1
2
  require 'http/cookie_jar'
2
3
  require 'sqlite3'
3
4
 
4
5
  class HTTP::CookieJar
6
+ # A store class that uses Mozilla compatible SQLite3 database as
7
+ # backing store.
5
8
  class MozillaStore < AbstractStore
6
9
  SCHEMA_VERSION = 5
7
10
 
@@ -26,6 +29,27 @@ class HTTP::CookieJar
26
29
  appId inBrowserElement
27
30
  ]
28
31
 
32
+ # Generates a Mozilla cookie store. If the file does not exist,
33
+ # it is created. If it does and its schema is old, it is
34
+ # automatically upgraded with a new schema keeping the existing
35
+ # data.
36
+ #
37
+ # Available option keywords are as below:
38
+ #
39
+ # :filename
40
+ # : A file name of the SQLite3 database to open. This option is
41
+ # mandatory.
42
+ #
43
+ # :gc_threshold
44
+ # : GC threshold; A GC happens when this many times cookies have
45
+ # been stored (default: `HTTP::Cookie::MAX_COOKIES_TOTAL / 20`)
46
+ #
47
+ # :app_id
48
+ # : application ID (default: `0`) to have per application jar.
49
+ #
50
+ # :in_browser_element
51
+ # : a flag to tell if cookies are stored in an in browser
52
+ # element. (default: `false`)
29
53
  def initialize(options = nil)
30
54
  super
31
55
 
@@ -39,6 +63,22 @@ class HTTP::CookieJar
39
63
  @gc_index = 0
40
64
  end
41
65
 
66
+ # The file name of the SQLite3 database given in initialization.
67
+ attr_reader :filename
68
+
69
+ # Closes the SQLite3 database. After closing, any operation may
70
+ # raise an error.
71
+ def close
72
+ @db.close
73
+ self
74
+ end
75
+
76
+ # Tests if the SQLite3 database is closed.
77
+ def closed?
78
+ @db.closed?
79
+ end
80
+
81
+ # Returns the schema version of the database.
42
82
  def schema_version
43
83
  @schema_version ||= @db.execute("PRAGMA user_version").first[0]
44
84
  rescue SQLite3::SQLException
@@ -200,18 +200,18 @@ class TestHTTPCookie < Test::Unit::TestCase
200
200
 
201
201
  cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url).first
202
202
  assert_in_delta Time.now + 3600, cookie.expires, 1
203
- cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url, :date => base).first
203
+ cookie = HTTP::Cookie.parse('name=Akinori; max-age=3600', :origin => url, :created_at => base).first
204
204
  assert_equal base + 3600, cookie.expires
205
205
 
206
206
  # Max-Age has precedence over Expires
207
207
  cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url).first
208
208
  assert_in_delta Time.now + 3600, cookie.expires, 1
209
- cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url, :date => base).first
209
+ cookie = HTTP::Cookie.parse("name=Akinori; max-age=3600; expires=#{date}", :origin => url, :created_at => base).first
210
210
  assert_equal base + 3600, cookie.expires
211
211
 
212
212
  cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url).first
213
213
  assert_in_delta Time.now + 3600, cookie.expires, 1
214
- cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url, :date => base).first
214
+ cookie = HTTP::Cookie.parse("name=Akinori; expires=#{date}; max-age=3600", :origin => url, :created_at => base).first
215
215
  assert_equal base + 3600, cookie.expires
216
216
  end
217
217
 
@@ -382,8 +382,8 @@ class TestHTTPCookie < Test::Unit::TestCase
382
382
  date = Time.at(Time.now.to_i)
383
383
  cookie_params.keys.combine.each do |keys|
384
384
  cookie_text = [cookie_value, *keys.map { |key| cookie_params[key] }].join('; ')
385
- cookie, = HTTP::Cookie.parse(cookie_text, :origin => url, :date => date)
386
- cookie2, = HTTP::Cookie.parse(cookie.set_cookie_value, :origin => url, :date => date)
385
+ cookie, = HTTP::Cookie.parse(cookie_text, :origin => url, :created_at => date)
386
+ cookie2, = HTTP::Cookie.parse(cookie.set_cookie_value, :origin => url, :created_at => date)
387
387
 
388
388
  assert_equal(cookie.name, cookie2.name)
389
389
  assert_equal(cookie.value, cookie2.value)
@@ -539,7 +539,7 @@ class TestHTTPCookie < Test::Unit::TestCase
539
539
 
540
540
  cookie.max_age = 3600
541
541
  assert_equal false, cookie.session?
542
- assert_equal nil, cookie.expires
542
+ assert_equal cookie.created_at + 3600, cookie.expires
543
543
 
544
544
  cookie.max_age = nil
545
545
  assert_equal true, cookie.session?
@@ -775,6 +775,38 @@ class TestHTTPCookie < Test::Unit::TestCase
775
775
  }
776
776
  end
777
777
 
778
+ def test_yaml_expires
779
+ require 'yaml'
780
+ cookie = HTTP::Cookie.new(cookie_values)
781
+
782
+ assert_equal false, cookie.session?
783
+ assert_equal nil, cookie.max_age
784
+
785
+ ycookie = YAML.load(cookie.to_yaml)
786
+ assert_equal false, ycookie.session?
787
+ assert_equal nil, ycookie.max_age
788
+
789
+ cookie.expires = nil
790
+ ycookie = YAML.load(cookie.to_yaml)
791
+ assert_equal true, ycookie.session?
792
+ assert_equal nil, ycookie.max_age
793
+
794
+ cookie.expires = Time.now + 3600
795
+ ycookie = YAML.load(cookie.to_yaml)
796
+ assert_equal false, ycookie.session?
797
+ assert_equal nil, ycookie.max_age
798
+
799
+ cookie.max_age = 3600
800
+ ycookie = YAML.load(cookie.to_yaml)
801
+ assert_equal false, ycookie.session?
802
+ assert_equal cookie.created_at + 3600, ycookie.expires
803
+
804
+ cookie.max_age = nil
805
+ ycookie = YAML.load(cookie.to_yaml)
806
+ assert_equal true, ycookie.session?
807
+ assert_equal nil, ycookie.expires
808
+ end
809
+
778
810
  def test_s_path_match?
779
811
  assert_equal true, HTTP::Cookie.path_match?('/admin/', '/admin/index')
780
812
  assert_equal false, HTTP::Cookie.path_match?('/admin/', '/Admin/index')
@@ -363,13 +363,16 @@ class TestHTTPCookieJar < Test::Unit::TestCase
363
363
  h_cookie = HTTP::Cookie.new(cookie_values(:name => 'Quux',
364
364
  :value => 'Foo#Quux',
365
365
  :httponly => true))
366
-
366
+ ma_cookie = HTTP::Cookie.new(cookie_values(:name => 'Maxage',
367
+ :value => 'Foo#Maxage',
368
+ :max_age => 15000))
367
369
  @jar.add(cookie)
368
370
  @jar.add(s_cookie)
369
371
  @jar.add(cookie2)
370
372
  @jar.add(h_cookie)
373
+ @jar.add(ma_cookie)
371
374
 
372
- assert_equal(4, @jar.cookies(url).length)
375
+ assert_equal(5, @jar.cookies(url).length)
373
376
 
374
377
  Dir.mktmpdir do |dir|
375
378
  filename = File.join(dir, "cookies.txt")
@@ -384,7 +387,7 @@ class TestHTTPCookieJar < Test::Unit::TestCase
384
387
  jar = HTTP::CookieJar.new
385
388
  jar.load(filename, :cookiestxt) # HACK test the format
386
389
  cookies = jar.cookies(url)
387
- assert_equal(3, cookies.length)
390
+ assert_equal(4, cookies.length)
388
391
  cookies.each { |cookie|
389
392
  case cookie.name
390
393
  when 'Foo'
@@ -407,13 +410,17 @@ class TestHTTPCookieJar < Test::Unit::TestCase
407
410
  assert_equal true, cookie.for_domain
408
411
  assert_equal '/', cookie.path
409
412
  assert_equal true, cookie.httponly?
413
+ when 'Maxage'
414
+ assert_equal 'Foo#Maxage', cookie.value
415
+ assert_equal nil, cookie.max_age
416
+ assert_in_delta ma_cookie.expires, cookie.expires, 1
410
417
  else
411
418
  raise
412
419
  end
413
420
  }
414
421
  end
415
422
 
416
- assert_equal(4, @jar.cookies(url).length)
423
+ assert_equal(5, @jar.cookies(url).length)
417
424
  end
418
425
 
419
426
  def test_expire_cookies
@@ -591,19 +598,27 @@ class TestHTTPCookieJar < Test::Unit::TestCase
591
598
  def test_max_cookies_hashstore
592
599
  gc_threshold = 150
593
600
  h_test_max_cookies(
594
- HTTP::CookieJar.new(:hash,
601
+ HTTP::CookieJar.new(
602
+ :store => :hash,
595
603
  :gc_threshold => gc_threshold),
596
604
  HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
597
605
  end
598
606
 
599
607
  def test_max_cookies_mozillastore
600
608
  gc_threshold = 150
601
- Dir.mktmpdir { |dir|
602
- h_test_max_cookies(
603
- HTTP::CookieJar.new(:mozilla,
604
- :gc_threshold => gc_threshold,
605
- :filename => File.join(dir, "cookies.sqlite")),
606
- HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
607
- }
609
+ h_test_max_cookies(
610
+ HTTP::CookieJar.new(
611
+ :store => :mozilla,
612
+ :gc_threshold => gc_threshold,
613
+ :filename => ":memory:"),
614
+ HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
615
+ #Dir.mktmpdir { |dir|
616
+ # h_test_max_cookies(
617
+ # HTTP::CookieJar.new(
618
+ # :store => :mozilla,
619
+ # :gc_threshold => gc_threshold,
620
+ # :filename => File.join(dir, "cookies.sqlite")),
621
+ # HTTP::Cookie::MAX_COOKIES_TOTAL + gc_threshold)
622
+ #}
608
623
  end
609
624
  end
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.pre3
4
+ version: 1.0.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinori MUSHA