http-cookie 1.0.5 → 1.1.6

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
  SHA256:
3
- metadata.gz: 5230b0bd44e032652855e7b9e60e3d994ca56adbd57550c7520930d4dbf734a4
4
- data.tar.gz: 65240197f49ac57bac8c6f3d1104cfe4f8fff77e1ac992c05c72d74efbba8300
3
+ metadata.gz: 72ef3493437238f93258320d1e8bdfea5d155e731ed6e88d55b284bff3c7a3a0
4
+ data.tar.gz: ecf432149b7b13a7437ad6c8a8433b85fbe4cf223ba07016831c2da3a8598de2
5
5
  SHA512:
6
- metadata.gz: 7fc5bb2e287d60d060c54eb9fb9ccb6d55c55e84ec35525deff8c088c873d6ac26db86f7f1cf3c03a7cbf05e397b6cd0e3a1e1171c2dcff8848e0345a34b0905
7
- data.tar.gz: 1c85e07a65fac1d5440126bea27dbc01160edc9a791f56e021cd3142070eada54bf1ec3cda31c9d9273f23c3a84c8786c308bcdd27e03f7266c203dde4abdd6f
6
+ metadata.gz: 110ace005f635800820a73c4c4955cdd0d80fdfddf781949957f2738e0bd7d78068c5d03537f9defa7eba25b7f8156e823897460cd3bf84db8fd7dff55550cd2
7
+ data.tar.gz: c20f7c2409b86773bcf93367d135058dea7bf52f7fe3ef240161be0b137d2dce9ced8fc4e8398353b876c469edaebcdecc2e7cba77f92795972e6472a8f13959
data/CHANGELOG.md CHANGED
@@ -1,3 +1,59 @@
1
+ ## 1.1.6 (2026-04-20)
2
+
3
+ - Use `autoload` to avoid "circular require" warnings between `http/cookie` and `http/cookie_jar`. (#65)
4
+
5
+
6
+ ## 1.1.5 (2026-04-19)
7
+
8
+ - Fix `NameError: uninitialized constant HTTP::Cookie::MAX_COOKIES_TOTAL` when `http/cookie_jar` is required without `http/cookie`, as done by the `http` gem. (#62)
9
+
10
+
11
+ ## 1.1.4 (2026-04-07)
12
+
13
+ - Fix `require "http/cookie_jar"` raising `NameError: uninitialized constant HTTP`. (#61)
14
+
15
+
16
+ ## 1.1.3 (2026-04-06)
17
+
18
+ - Restore compatibility with Ruby 2.6.
19
+
20
+
21
+ ## 1.1.2 (2026-04-06)
22
+
23
+ - Stop requiring sqlite3 at load time by changing `MozillaStore::Database` from inheritance to composition.
24
+
25
+
26
+ ## 1.1.1 (2026-04-06)
27
+
28
+ - Fix thread-unsafe runtime requires. (#43 by @brasic, #57)
29
+ - Replace `require 'cgi'` with `require 'cgi/escape'` to suppress Ruby 4.0 warning. (#56 by @dominion525)
30
+ - Do not define `MozillaStore` on JRuby; leave the constant undefined instead.
31
+ - Relax sqlite3 development dependency to `>= 1.3`.
32
+
33
+
34
+ ## 1.1.0 (2025-09-26)
35
+
36
+ - Implement `Cookie#to_h`. (#55) @luke-hill @flavorjones
37
+ - Reduce gem size by excluding test files (#54) @yuri-zubov
38
+
39
+
40
+ ## 1.0.8 (2024-12-05)
41
+
42
+ - `Cookie#expires=` accepts `DateTime` objects. (#52) @luke-hill @flavorjones
43
+
44
+
45
+ ## 1.0.7 (2024-06-06)
46
+
47
+ - Explicitly require "cgi" to avoid `NameError` in some applications. (#50 by @flavorjones)
48
+
49
+
50
+ ## 1.0.6 (2024-06-01)
51
+
52
+ - Fix error formatting bug in HTTP::CookieJar::AbstractStore (#42 by @andrelaszlo)
53
+ - Allow non-RFC 3986-compliant URLs (#45 by @c960657)
54
+ - Add coverage for Ruby 3.2 and 3.3 (#46 by @flavorjones)
55
+ - Quash ruby 3.4 warnings (#47 by @flavorjones)
56
+
1
57
  ## 1.0.5 (2022-05-25)
2
58
 
3
59
  - Silence SQLite3 warnings
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Akinori MUSHA
1
+ Copyright (c) 2013-2026 Akinori MUSHA
2
2
  Copyright (c) 2011-2012 Akinori MUSHA, Eric Hodel
3
3
  Copyright (c) 2006-2011 Aaron Patterson, Mike Dalessio
4
4
 
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Gem Version](https://badge.fury.io/rb/http-cookie.svg)](https://badge.fury.io/rb/http-cookie)
2
+
1
3
  # HTTP::Cookie
2
4
 
3
5
  HTTP::Cookie is a ruby library to handle HTTP cookies in a way both
@@ -20,7 +22,8 @@ The following is an incomplete list of its features:
20
22
  * It takes eTLD (effective TLD, also known as "Public Suffix") into
21
23
  account just as major browsers do, to reject cookies with an eTLD
22
24
  domain like "org", "co.jp", or "appspot.com". This feature is
23
- brought to you by the domain_name gem.
25
+ brought to you by the
26
+ [domain_name](https://github.com/knu/ruby-domain_name) gem.
24
27
 
25
28
  * The number of cookies and the size are properly capped so that a
26
29
  cookie store does not get flooded.
@@ -207,7 +210,7 @@ equivalent using HTTP::Cookie:
207
210
  guarantee that it will remain available in the future.
208
211
 
209
212
 
210
- HTTP::Cookie/CookieJar raise runtime errors to help migration, so
213
+ HTTP::Cookie/CookieJar raises runtime errors to help migration, so
211
214
  after replacing the class names, try running your test code once to
212
215
  find out how to fix your code base.
213
216
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'http/cookie'
2
3
  require 'strscan'
3
4
  require 'time'
@@ -23,7 +24,7 @@ class HTTP::Cookie::Scanner < StringScanner
23
24
  class << self
24
25
  def quote(s)
25
26
  return s unless s.match(RE_BAD_CHAR)
26
- '"' << s.gsub(/([\\"])/, "\\\\\\1") << '"'
27
+ (+'"') << s.gsub(/([\\"])/, "\\\\\\1") << '"'
27
28
  end
28
29
  end
29
30
 
@@ -32,7 +33,7 @@ class HTTP::Cookie::Scanner < StringScanner
32
33
  end
33
34
 
34
35
  def scan_dquoted
35
- ''.tap { |s|
36
+ (+'').tap { |s|
36
37
  case
37
38
  when skip(/"/)
38
39
  break
@@ -51,7 +52,7 @@ class HTTP::Cookie::Scanner < StringScanner
51
52
  end
52
53
 
53
54
  def scan_value(comma_as_separator = false)
54
- ''.tap { |s|
55
+ (+'').tap { |s|
55
56
  case
56
57
  when scan(/[^,;"]+/)
57
58
  s << matched
@@ -0,0 +1,36 @@
1
+ module HTTP::Cookie::URIParser
2
+ module_function
3
+
4
+ # Regular Expression taken from RFC 3986 Appendix B
5
+ URIREGEX = %r{
6
+ \A
7
+ (?: (?<scheme> [^:/?\#]+ ) : )?
8
+ (?: // (?<authority> [^/?\#]* ) )?
9
+ (?<path> [^?\#]* )
10
+ (?: \? (?<query> [^\#]* ) )?
11
+ (?: \# (?<fragment> .* ) )?
12
+ \z
13
+ }x
14
+
15
+ # Escape RFC 3986 "reserved" characters minus valid characters for path
16
+ # More specifically, gen-delims minus "/" / "?" / "#"
17
+ def escape_path(path)
18
+ path.sub(/\A[^?#]+/) { |p| p.gsub(/[:\[\]@]+/) { |r| CGI.escape(r) } }
19
+ end
20
+
21
+ # Parse a URI string or object, relaxing the constraints on the path component
22
+ def parse(uri)
23
+ URI(uri)
24
+ rescue URI::InvalidURIError
25
+ str = String.try_convert(uri) or
26
+ raise ArgumentError, "bad argument (expected URI object or URI string)"
27
+
28
+ m = URIREGEX.match(str) or raise
29
+
30
+ path = m[:path]
31
+ str[m.begin(:path)...m.end(:path)] = escape_path(path)
32
+ uri = URI.parse(str)
33
+ uri.__send__(:set_path, path)
34
+ uri
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  module HTTP
2
2
  class Cookie
3
- VERSION = "1.0.5"
3
+ VERSION = "1.1.6"
4
4
  end
5
5
  end
data/lib/http/cookie.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  # :markup: markdown
2
+ # frozen_string_literal: true
2
3
  require 'http/cookie/version'
4
+ require 'http/cookie/uri_parser'
3
5
  require 'time'
4
6
  require 'uri'
5
7
  require 'domain_name'
6
8
  require 'http/cookie/ruby_compat'
9
+ require 'cgi/escape'
7
10
 
8
11
  module HTTP
9
12
  autoload :CookieJar, 'http/cookie_jar'
@@ -86,7 +89,7 @@ class HTTP::Cookie
86
89
 
87
90
  # The Expires attribute value as a Time object.
88
91
  #
89
- # The setter method accepts a Time object, a string representation
92
+ # The setter method accepts a Time / DateTime object, a string representation
90
93
  # of date/time that Time.parse can understand, or `nil`.
91
94
  #
92
95
  # Setting this value resets #max_age to nil. When #max_age is
@@ -275,7 +278,7 @@ class HTTP::Cookie
275
278
  logger = options[:logger]
276
279
  created_at = options[:created_at]
277
280
  end
278
- origin = URI(origin)
281
+ origin = HTTP::Cookie::URIParser.parse(origin)
279
282
 
280
283
  [].tap { |cookies|
281
284
  Scanner.new(set_cookie, logger).scan_set_cookie { |name, value, attrs|
@@ -424,7 +427,7 @@ class HTTP::Cookie
424
427
  # Returns the domain, with a dot prefixed only if the domain flag is
425
428
  # on.
426
429
  def dot_domain
427
- @for_domain ? '.' << @domain : @domain
430
+ @for_domain ? (+'.') << @domain : @domain
428
431
  end
429
432
 
430
433
  # Returns the domain attribute value as a DomainName object.
@@ -455,7 +458,7 @@ class HTTP::Cookie
455
458
  @origin.nil? or
456
459
  raise ArgumentError, "origin cannot be changed once it is set"
457
460
  # Delay setting @origin because #domain= or #path= may fail
458
- origin = URI(origin)
461
+ origin = HTTP::Cookie::URIParser.parse(origin)
459
462
  if URI::HTTP === origin
460
463
  self.domain ||= origin.host
461
464
  self.path ||= (origin + './').path
@@ -490,6 +493,8 @@ class HTTP::Cookie
490
493
  def expires= t
491
494
  case t
492
495
  when nil, Time
496
+ when DateTime
497
+ t = t.to_time
493
498
  else
494
499
  t = Time.parse(t)
495
500
  end
@@ -548,7 +553,7 @@ class HTTP::Cookie
548
553
  # Tests if it is OK to accept this cookie if it is sent from a given
549
554
  # URI/URL, `uri`.
550
555
  def acceptable_from_uri?(uri)
551
- uri = URI(uri)
556
+ uri = HTTP::Cookie::URIParser.parse(uri)
552
557
  return false unless URI::HTTP === uri && uri.host
553
558
  host = DomainName.new(uri.host)
554
559
 
@@ -585,7 +590,7 @@ class HTTP::Cookie
585
590
  if @domain.nil?
586
591
  raise "cannot tell if this cookie is valid because the domain is unknown"
587
592
  end
588
- uri = URI(uri)
593
+ uri = HTTP::Cookie::URIParser.parse(uri)
589
594
  # RFC 6265 5.4
590
595
  return false if secure? && !(URI::HTTPS === uri)
591
596
  acceptable_from_uri?(uri) && HTTP::Cookie.path_match?(@path, uri.path)
@@ -594,7 +599,7 @@ class HTTP::Cookie
594
599
  # Returns a string for use in the Cookie header, i.e. `name=value`
595
600
  # or `name="value"`.
596
601
  def cookie_value
597
- "#{@name}=#{Scanner.quote(@value)}"
602
+ +"#{@name}=#{Scanner.quote(@value)}"
598
603
  end
599
604
  alias to_s cookie_value
600
605
 
@@ -650,6 +655,11 @@ class HTTP::Cookie
650
655
  end
651
656
  include Comparable
652
657
 
658
+ # Hash serialization helper for use back into other libraries (Like Selenium)
659
+ def to_h
660
+ PERSISTENT_PROPERTIES.each_with_object({}) { |property, hash| hash[property.to_sym] = instance_variable_get("@#{property}") }
661
+ end
662
+
653
663
  # YAML serialization helper for Syck.
654
664
  def to_yaml_properties
655
665
  PERSISTENT_PROPERTIES.map { |name| "@#{name}" }
@@ -2,29 +2,15 @@
2
2
 
3
3
  # An abstract superclass for all saver classes.
4
4
  class HTTP::CookieJar::AbstractSaver
5
- class << self
6
- @@class_map = {}
7
5
 
8
- # Gets an implementation class by the name, optionally trying to
9
- # load "http/cookie_jar/*_saver" if not found. If loading fails,
10
- # IndexError is raised.
11
- def implementation(symbol)
12
- @@class_map.fetch(symbol)
13
- rescue IndexError
14
- begin
15
- require 'http/cookie_jar/%s_saver' % symbol
16
- @@class_map.fetch(symbol)
17
- rescue LoadError, IndexError
18
- raise IndexError, 'cookie saver unavailable: %s' % symbol.inspect
19
- end
20
- end
21
-
22
- def inherited(subclass) # :nodoc:
23
- @@class_map[class_to_symbol(subclass)] = subclass
24
- end
25
-
26
- def class_to_symbol(klass) # :nodoc:
27
- klass.name[/[^:]+?(?=Saver$|$)/].downcase.to_sym
6
+ def self.implementation(symbol)
7
+ case symbol
8
+ when :yaml
9
+ HTTP::CookieJar::YAMLSaver
10
+ when :cookiestxt
11
+ HTTP::CookieJar::CookiestxtSaver
12
+ else
13
+ raise IndexError, 'cookie saver unavailable: %s' % symbol.inspect
28
14
  end
29
15
  end
30
16
 
@@ -63,3 +49,6 @@ class HTTP::CookieJar::AbstractSaver
63
49
  # self
64
50
  end
65
51
  end
52
+
53
+ require "http/cookie_jar/yaml_saver"
54
+ require "http/cookie_jar/cookiestxt_saver"
@@ -6,29 +6,18 @@ class HTTP::CookieJar::AbstractStore
6
6
  include MonitorMixin
7
7
 
8
8
  class << self
9
- @@class_map = {}
10
9
 
11
- # Gets an implementation class by the name, optionally trying to
12
- # load "http/cookie_jar/*_store" if not found. If loading fails,
13
- # IndexError is raised.
10
+ # Gets an implementation class by the name.
14
11
  def implementation(symbol)
15
- @@class_map.fetch(symbol)
16
- rescue IndexError
17
- begin
18
- require 'http/cookie_jar/%s_store' % symbol
19
- @@class_map.fetch(symbol)
20
- rescue LoadError, IndexError => e
21
- raise IndexError, 'cookie store unavailable: %s, error: %s' % symbol.inspect, e.message
12
+ case symbol
13
+ when :hash
14
+ HTTP::CookieJar::HashStore
15
+ when :mozilla
16
+ HTTP::CookieJar::MozillaStore
17
+ else
18
+ raise IndexError, 'cookie store unavailable: %s' % symbol.inspect
22
19
  end
23
20
  end
24
-
25
- def inherited(subclass) # :nodoc:
26
- @@class_map[class_to_symbol(subclass)] = subclass
27
- end
28
-
29
- def class_to_symbol(klass) # :nodoc:
30
- klass.name[/[^:]+?(?=Store$|$)/].downcase.to_sym
31
- end
32
21
  end
33
22
 
34
23
  # Defines options and their default values.
@@ -122,3 +111,9 @@ class HTTP::CookieJar::AbstractStore
122
111
  # self
123
112
  end
124
113
  end
114
+
115
+ require 'http/cookie_jar/hash_store'
116
+
117
+ unless defined?(JRUBY_VERSION)
118
+ require 'http/cookie_jar/mozilla_store'
119
+ end
@@ -1,5 +1,4 @@
1
1
  # :markup: markdown
2
- require 'http/cookie_jar'
3
2
 
4
3
  # CookiestxtSaver saves and loads cookies in the cookies.txt format.
5
4
  class HTTP::CookieJar::CookiestxtSaver < HTTP::CookieJar::AbstractSaver
@@ -1,5 +1,4 @@
1
1
  # :markup: markdown
2
- require 'http/cookie_jar'
3
2
 
4
3
  class HTTP::CookieJar
5
4
  # A store class that uses a hash-based cookie store.
@@ -1,6 +1,5 @@
1
1
  # :markup: markdown
2
- require 'http/cookie_jar'
3
- require 'sqlite3'
2
+ autoload :SQLite3, 'sqlite3'
4
3
 
5
4
  class HTTP::CookieJar
6
5
  # A store class that uses Mozilla compatible SQLite3 database as
@@ -38,20 +37,15 @@ class HTTP::CookieJar
38
37
  }
39
38
  }
40
39
 
41
- class Database < SQLite3::Database
42
- def initialize(file, options = {})
40
+ class Database
41
+ def initialize(file)
42
+ @db = SQLite3::Database.new(file, results_as_hash: true)
43
43
  @stmts = []
44
- options = {
45
- :results_as_hash => true,
46
- }.update(options)
47
- super
48
44
  end
49
45
 
50
46
  def prepare(sql)
51
- case st = super
52
- when SQLite3::Statement
53
- @stmts << st
54
- end
47
+ st = @db.prepare(sql)
48
+ @stmts << st if st.is_a?(SQLite3::Statement)
55
49
  st
56
50
  end
57
51
 
@@ -60,7 +54,19 @@ class HTTP::CookieJar
60
54
  @stmts.reject! { |st|
61
55
  st.closed? || st.close
62
56
  }
63
- super
57
+ @db.close
58
+ end
59
+
60
+ def closed?
61
+ @db.closed?
62
+ end
63
+
64
+ def execute(*args, &block)
65
+ @db.execute(*args, &block)
66
+ end
67
+
68
+ def create_function(*args, &block)
69
+ @db.create_function(*args, &block)
64
70
  end
65
71
  end
66
72
  # :startdoc:
@@ -400,8 +406,6 @@ class HTTP::CookieJar
400
406
  }
401
407
  end
402
408
  else
403
- require 'cgi'
404
-
405
409
  def encode_www_form(enum)
406
410
  enum.map { |k, v| "#{CGI.escape(k)}=#{CGI.escape(v)}" }.join('&')
407
411
  end
@@ -1,7 +1,5 @@
1
1
  # :markup: markdown
2
- require 'http/cookie_jar'
3
- require 'psych' if !defined?(YAML) && RUBY_VERSION == "1.9.2"
4
- require 'yaml'
2
+ autoload :YAML, 'yaml'
5
3
 
6
4
  # YAMLSaver saves and loads cookies in the YAML format. It can load a
7
5
  # YAML file saved by Mechanize, but the saving format is not
@@ -74,13 +72,9 @@ class HTTP::CookieJar::YAMLSaver < HTTP::CookieJar::AbstractSaver
74
72
  {}
75
73
  end
76
74
 
77
- if YAML.name == 'Psych' && Psych::VERSION >= '3.1'
78
- def load_yaml(yaml)
79
- YAML.safe_load(yaml, :permitted_classes => %w[Time HTTP::Cookie Mechanize::Cookie DomainName], :aliases => true)
80
- end
81
- else
82
- def load_yaml(yaml)
83
- YAML.load(yaml)
84
- end
75
+ def load_yaml(yaml)
76
+ YAML.safe_load(yaml, :permitted_classes => %w[Time HTTP::Cookie Mechanize::Cookie DomainName], :aliases => true)
77
+ rescue NoMethodError # ruby < 2.0, no safe_load
78
+ YAML.load(yaml)
85
79
  end
86
80
  end
@@ -1,31 +1,14 @@
1
1
  # :markup: markdown
2
- require 'http/cookie'
2
+
3
+ module HTTP
4
+ autoload :Cookie, "http/cookie"
5
+ end
3
6
 
4
7
  ##
5
8
  # This class is used to manage the Cookies that have been returned from
6
9
  # any particular website.
7
10
 
8
11
  class HTTP::CookieJar
9
- class << self
10
- def const_missing(name)
11
- case name.to_s
12
- when /\A([A-Za-z]+)Store\z/
13
- file = 'http/cookie_jar/%s_store' % $1.downcase
14
- when /\A([A-Za-z]+)Saver\z/
15
- file = 'http/cookie_jar/%s_saver' % $1.downcase
16
- end
17
- begin
18
- require file
19
- rescue LoadError
20
- raise NameError, 'can\'t resolve constant %s; failed to load %s' % [name, file]
21
- end
22
- if const_defined?(name)
23
- const_get(name)
24
- else
25
- raise NameError, 'can\'t resolve constant %s after loading %s' % [name, file]
26
- end
27
- end
28
- end
29
12
 
30
13
  attr_reader :store
31
14
 
@@ -156,7 +139,7 @@ class HTTP::CookieJar
156
139
  block_given? or return enum_for(__method__, uri)
157
140
 
158
141
  if uri
159
- uri = URI(uri)
142
+ uri = HTTP::Cookie::URIParser.parse(uri)
160
143
  return self unless URI::HTTP === uri && uri.host
161
144
  end
162
145
 
@@ -342,3 +325,6 @@ class HTTP::CookieJar
342
325
  self
343
326
  end
344
327
  end
328
+
329
+ require 'http/cookie_jar/abstract_store'
330
+ require 'http/cookie_jar/abstract_saver'
data/lib/http-cookie.rb CHANGED
@@ -1 +1,4 @@
1
- require 'http/cookie'
1
+ module HTTP
2
+ autoload :Cookie, 'http/cookie'
3
+ autoload :CookieJar, 'http/cookie_jar'
4
+ end
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-cookie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinori MUSHA
8
8
  - Aaron Patterson
9
9
  - Eric Hodel
10
10
  - Mike Dalessio
11
- autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2022-05-25 00:00:00.000000000 Z
13
+ date: 1980-01-02 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: domain_name
@@ -31,14 +30,14 @@ dependencies:
31
30
  name: sqlite3
32
31
  requirement: !ruby/object:Gem::Requirement
33
32
  requirements:
34
- - - "~>"
33
+ - - ">="
35
34
  - !ruby/object:Gem::Version
36
35
  version: '1.3'
37
36
  type: :development
38
37
  prerelease: false
39
38
  version_requirements: !ruby/object:Gem::Requirement
40
39
  requirements:
41
- - - "~>"
40
+ - - ">="
42
41
  - !ruby/object:Gem::Version
43
42
  version: '1.3'
44
43
  - !ruby/object:Gem::Dependency
@@ -124,21 +123,17 @@ email:
124
123
  executables: []
125
124
  extensions: []
126
125
  extra_rdoc_files:
127
- - README.md
128
126
  - LICENSE.txt
127
+ - README.md
129
128
  files:
130
- - ".github/workflows/ci.yml"
131
- - ".gitignore"
132
129
  - CHANGELOG.md
133
- - Gemfile
134
130
  - LICENSE.txt
135
131
  - README.md
136
- - Rakefile
137
- - http-cookie.gemspec
138
132
  - lib/http-cookie.rb
139
133
  - lib/http/cookie.rb
140
134
  - lib/http/cookie/ruby_compat.rb
141
135
  - lib/http/cookie/scanner.rb
136
+ - lib/http/cookie/uri_parser.rb
142
137
  - lib/http/cookie/version.rb
143
138
  - lib/http/cookie_jar.rb
144
139
  - lib/http/cookie_jar/abstract_saver.rb
@@ -147,16 +142,10 @@ files:
147
142
  - lib/http/cookie_jar/hash_store.rb
148
143
  - lib/http/cookie_jar/mozilla_store.rb
149
144
  - lib/http/cookie_jar/yaml_saver.rb
150
- - test/helper.rb
151
- - test/mechanize.yml
152
- - test/simplecov_start.rb
153
- - test/test_http_cookie.rb
154
- - test/test_http_cookie_jar.rb
155
145
  homepage: https://github.com/sparklemotion/http-cookie
156
146
  licenses:
157
147
  - MIT
158
148
  metadata: {}
159
- post_install_message:
160
149
  rdoc_options: []
161
150
  require_paths:
162
151
  - lib
@@ -171,13 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
160
  - !ruby/object:Gem::Version
172
161
  version: '0'
173
162
  requirements: []
174
- rubygems_version: 3.3.14
175
- signing_key:
163
+ rubygems_version: 4.0.6
176
164
  specification_version: 4
177
165
  summary: A Ruby library to handle HTTP Cookies based on RFC 6265
178
- test_files:
179
- - test/helper.rb
180
- - test/mechanize.yml
181
- - test/simplecov_start.rb
182
- - test/test_http_cookie.rb
183
- - test/test_http_cookie_jar.rb
166
+ test_files: []
@@ -1,37 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
- pull_request:
8
- branches:
9
- - "*"
10
-
11
- jobs:
12
- test:
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- os: [ubuntu]
17
- # We still kind of support Ruby 1.8.7
18
- ruby: [2.7, "3.0", 3.1, head, jruby]
19
-
20
- name: >-
21
- ${{matrix.os}}:ruby-${{matrix.ruby}}
22
- runs-on: ${{matrix.os}}-latest
23
- continue-on-error: ${{matrix.ruby == 'head' || matrix.ruby == 'jruby'}}
24
-
25
- steps:
26
- - name: Check out
27
- uses: actions/checkout@v2
28
-
29
- - name: Set up ruby and bundle
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: ${{matrix.ruby}}
33
- bundler-cache: true
34
-
35
- - name: Run rake
36
- run: |
37
- bundle exec rake
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in http-cookie.gemspec
4
- gemspec