Commit graph

107 commits

Author SHA1 Message Date
Mike Dalessio
69b240bc01
fix: explicitly require CGI
Closes #49
2024-06-06 11:11:17 -04:00
Mike Dalessio
22ea7af086
fix: be explicit about frozen string literals to quash warnings 2024-03-24 10:02:56 -04:00
Akinori MUSHA
8930674adf Change the custom URI parser to be a bit more conservative
First try the default URI(), and if it fails relax the restrictions on
the path component as a fallback.
2023-11-02 01:48:31 +09:00
Christian Schmidt
052479536c Allow non-RFC 3986-compliant URLs 2023-10-12 18:34:07 +02:00
Akinori MUSHA
5d7fbde318 Avoid warnings 2016-12-08 23:49:44 +09:00
Akinori MUSHA
391ada20d0 HTTP::Cookie.parse() should not raise an exception if it finds a bad name or value. 2013-09-10 14:48:29 +09:00
Akinori MUSHA
17d5a128d7 Fix error messages. 2013-04-21 19:32:57 +09:00
Akinori MUSHA
1dd16745e3 Update a comment. 2013-04-21 19:28:12 +09:00
Akinori MUSHA
3d4f0a65ff Cookie#origin=: Add a comment to explain why @origin is set the last. 2013-04-18 22:23:30 +09:00
Akinori MUSHA
a0202e2192 Cookie#max_age= should not reset #expires when it fails. 2013-04-18 22:22:11 +09:00
Akinori MUSHA
640ea1b297 Omit calling #expires= when #max_age= is going to be called. 2013-04-18 21:42:22 +09:00
Akinori MUSHA
0d5e666642 Improve rdoc. 2013-04-16 22:37:19 +09:00
Akinori MUSHA
04950f6796 Cookie#new: Reject a mixed case symbol as keyword for simplicity.
This fixes error with Ruby 1.8.
2013-04-16 16:39:55 +09:00
Akinori MUSHA
5bdb8f41ae Cookie#new prefers downcased symbols for keywords.
Test warnings.
2013-04-16 08:44:48 +09:00
Akinori MUSHA
fcdaddcbe6 Emit a proper message when try_convert() fails. 2013-04-16 01:38:05 +09:00
Akinori MUSHA
d44218c2e2 Cookie#acceptable? should not raise ArgumentError when it takes no argument.
Let CookieJar#add convert RuntimeError raised by acceptable? to
ArgumentError.
2013-04-15 10:29:07 +09:00
Akinori MUSHA
28458101b6 HTTP::Cookie.set_cookie_value: Don't take an origin argument. 2013-04-15 08:54:09 +09:00
Akinori MUSHA
88e3f28591 Directly define String#try_convert and Hash#try_convert in ruby 1.8. 2013-04-14 18:22:30 +09:00
Akinori MUSHA
6ec66d11ed Restore and improve compatibility with ruby 1.8. 2013-04-14 13:01:37 +09:00
Akinori MUSHA
5478f3d9c9 Improve rdoc. 2013-04-14 11:49:40 +09:00
Akinori MUSHA
2e8fcb4a76 yaml_initialize: Initialize @origin to reduce warnings. 2013-04-13 13:04:54 +09:00
Akinori MUSHA
02587d67e0 Cookie.new: Deprecate un-downcased keywords. 2013-04-13 12:56:33 +09:00
Akinori MUSHA
e1857d76a4 Add Cookie.cookie_value and Cookie.cookie_value_to_hash. 2013-04-12 02:15:13 +09:00
Akinori MUSHA
82e65b4a9b Allow assigning nil to the cookie value to make an expiration cookie.
Cookie.new(): Make the value parameter can be omittable.
2013-04-12 02:13:08 +09:00
Akinori MUSHA
8c30527293 Update rdoc and comments. 2013-04-12 20:22:50 +09:00
Akinori MUSHA
f0eb5d0cd8 Improve markups. 2013-04-08 00:03:04 +09:00
Akinori MUSHA
6689b3b7aa Drop support for obsolete attributes: version and comment. 2013-04-07 23:09:30 +09:00
Akinori MUSHA
9e46ce0d30 Cookie#max_age= should reject malformed strings. 2013-04-07 23:07:20 +09:00
Akinori MUSHA
726e2f89ea Emulate behavior of URI() of ruby >=1.9 where it raises ArgumentError. 2013-04-03 18:41:22 +09:00
Akinori MUSHA
7dba33bd40 Cookie#domain=: Fix handling of an empty string and let it accept nil. 2013-04-03 17:58:41 +09:00
Akinori MUSHA
ffabb614ad Perform acceptance check in CookieJar#add instead of origin=.
- Cookie#acceptable? is added, which is called by such methods as
  Cookie.parse and CookieJar#add.

- Cookie#origin= no longer raises ArgumentError just because it
  conflicts with the domain.

- Cookie#origin= raises ArgumentError if it is given an object that is
  not URI or string-like.
2013-04-03 17:57:27 +09:00
Akinori MUSHA
90ffce9aa6 Improve rdoc. 2013-04-03 17:29:08 +09:00
Akinori MUSHA
25630b35e7 Use case-when. 2013-04-02 23:34:44 +09:00
Akinori MUSHA
7ab0a15d78 Update rdoc. 2013-03-29 15:34:27 +09:00
Akinori MUSHA
48f5783ba5 origin=: Do not raise error if the new value is the same as the stock value. 2013-03-29 02:14:55 +09:00
Akinori MUSHA
dc65a98907 HTTP::Cookie.parse: Change the signature again.
I made the uri parameter optional when I introduced the origin
attribute, but on second thought it should always be given.

I'm making the origin parameter fixed and mandatory again, but this
time it comes next to set_cookie.  This order should look more natural
because the one that comes first is to be parsed.

Since Mechanize::Cookie.parse required the uri parameter to be a URI
object, backward compatibility is still possible.
2013-03-29 01:39:30 +09:00
Akinori MUSHA
ef7bdeefba Cookie#cookie_value too should quote values if necessary. 2013-03-28 22:06:19 +09:00
Akinori MUSHA
11a9df8559 Fix handling of the :for_domain option in HTTP::Cookie.new(). 2013-03-28 01:46:42 +09:00
Akinori MUSHA
19901a9d9c Edit rdoc. 2013-03-28 00:37:35 +09:00
Akinori MUSHA
a3a1acfee2 Even a host that equals a public suffix may not issue domain wide cookies.
This is described in RFC 6265 5.3.
2013-03-28 00:36:01 +09:00
Akinori MUSHA
073d83b40c Cookie.new: Let max_age take precedence over expires. 2013-03-28 00:12:46 +09:00
Akinori MUSHA
fcb447164d Prefer __send__ to send. 2013-03-28 00:12:29 +09:00
Akinori MUSHA
eed7e57813 Use the cookie creation time as base time for Max-Age.
Now #expire returns created_at + max_age when expires is nil.

Cookie.parse: the :date keyword is renamed to :created_at, and the
value is set to in parsed cookies via #created_at.

In YAML serialization, #max_age is stored.
2013-03-27 19:50:30 +09:00
Akinori MUSHA
a7575ae3df Improve documentation. 2013-03-27 18:17:56 +09:00
Akinori MUSHA
f2ea366de2 Add HTTP::Cookie#dot_domain. 2013-03-26 01:48:27 +09:00
Akinori MUSHA
5b78957e19 Conform to RFC 6265 5.1.4 in that path=/a matches /a/* but not /ab.
Remove HTTP::Cookie.normalize_path and add HTTP::Cookie.path_match?
instead for comparison.
2013-03-23 02:02:56 +09:00
Akinori MUSHA
6dda359db1 Improve rdoc. 2013-03-23 00:37:21 +09:00
Akinori MUSHA
38f7e98f09 Replace compatibility errors with documentation.
Leave compatibility stuff to Mechanize itself and just keep
http-cookie clean.
2013-03-23 00:27:38 +09:00
Akinori MUSHA
ddf74fee1e Rewrite the Set-Cookie header parser entirely.
The new parser is almost RFC 6265 compliant as the previous
implementation but has some extensions:

- It can parse double-quoted values with unsafe characters inside
  escaped with the backslash.

- It parses a date value of the expires attribute in the way the RFC
  describes, with an exception that it allows omission of the seconds
  field.  Some of the broken date representations that used to pass
  are now treated as error and ignored.

- It can parse a Set-Cookie value that contains multiple cookie
  definitions separated by comma, and commas put inside double quotes
  are not mistaken as definition separator.
2013-03-21 15:52:22 +09:00
Akinori MUSHA
b11aa95025 Initialize secure and httponly with false instead of nil. 2013-03-21 15:49:44 +09:00