<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/uri/test_mailto.rb, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/uri] Re-allow consecutive, leading and trailing dots in EMAIL_REGEXP</title>
<updated>2025-11-04T06:45:16+00:00</updated>
<author>
<name>Daisuke Aritomo</name>
<email>osyoyu@osyoyu.com</email>
</author>
<published>2025-11-04T05:34:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=397bb12778dd8940572e3fc4156085f1ca57f056'/>
<id>397bb12778dd8940572e3fc4156085f1ca57f056</id>
<content type='text'>
Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.

EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 to provide a practical regex for
validation.

&gt; This requirement is a willful violation of RFC 5322, which defines a
&gt; syntax for email addresses that is simultaneously too strict (before the
&gt; "@" character), too vague (after the "@" character), and too lax
&gt; (allowing comments, whitespace characters, and quoted strings in manners
&gt; unfamiliar to most users) to be of practical use here.

The allowing of consecutive dot s(`a..a@`) and leading/trailing dots
(`.a@`, `a.@`) is not the only derivation from RFC 5322. If a truly RFC
5322-compliant regexp is needed, tt should be organized under a
different name, since too much departure from the original EMAIL_REGEXP
must be introduced.

https://github.com/ruby/uri/commit/c551d7020b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.

EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 to provide a practical regex for
validation.

&gt; This requirement is a willful violation of RFC 5322, which defines a
&gt; syntax for email addresses that is simultaneously too strict (before the
&gt; "@" character), too vague (after the "@" character), and too lax
&gt; (allowing comments, whitespace characters, and quoted strings in manners
&gt; unfamiliar to most users) to be of practical use here.

The allowing of consecutive dot s(`a..a@`) and leading/trailing dots
(`.a@`, `a.@`) is not the only derivation from RFC 5322. If a truly RFC
5322-compliant regexp is needed, tt should be organized under a
different name, since too much departure from the original EMAIL_REGEXP
must be introduced.

https://github.com/ruby/uri/commit/c551d7020b
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Repeat matching to reduce deviations</title>
<updated>2025-07-13T04:37:15+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-13T04:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f03cc0b514e400c4ea1428103e1f1f601c22fa86'/>
<id>f03cc0b514e400c4ea1428103e1f1f601c22fa86</id>
<content type='text'>
https://github.com/ruby/uri/commit/fa49e5b8ae
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/fa49e5b8ae
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Test in exponential scale with rehearsal</title>
<updated>2025-07-13T04:37:15+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T11:05:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9c166d26b2e52fcddc29cc18d4017118689caf98'/>
<id>9c166d26b2e52fcddc29cc18d4017118689caf98</id>
<content type='text'>
https://github.com/ruby/uri/commit/be35e0b4d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/be35e0b4d8
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Improve performance of `URI::MailTo::EMAIL_REGEXP`</title>
<updated>2025-07-12T10:32:48+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T10:31:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cf7b871a94f2d44eb35676a3dbf9278a73a612c1'/>
<id>cf7b871a94f2d44eb35676a3dbf9278a73a612c1</id>
<content type='text'>
Fix the performance regression at #172 for valid emails.

``` yml
prelude: |
  require 'uri/mailto'
  n = 1000
  re = URI::MailTo::EMAIL_REGEXP
benchmark:
  n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
  example: re.match?("example@example.info")
```

|         |released| 788274b| c5974f0|    this|
|:--------|-------:|-------:|-------:|-------:|
|n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
|         |       -|   1.28x|   1.32x|   2.30x|
|example  |  3.911M|  3.740M|  2.838M|  3.880M|
|         |   1.38x|   1.32x|       -|   1.37x|

https://github.com/ruby/uri/commit/7363a134ac
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the performance regression at #172 for valid emails.

``` yml
prelude: |
  require 'uri/mailto'
  n = 1000
  re = URI::MailTo::EMAIL_REGEXP
benchmark:
  n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
  example: re.match?("example@example.info")
```

|         |released| 788274b| c5974f0|    this|
|:--------|-------:|-------:|-------:|-------:|
|n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
|         |       -|   1.28x|   1.32x|   2.30x|
|example  |  3.911M|  3.740M|  2.838M|  3.880M|
|         |   1.38x|   1.32x|       -|   1.37x|

https://github.com/ruby/uri/commit/7363a134ac
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Prohibit successive dots in email</title>
<updated>2025-07-12T07:07:05+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T06:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1add45e2a6e2ab62458f04eddf24898f61e7c01d'/>
<id>1add45e2a6e2ab62458f04eddf24898f61e7c01d</id>
<content type='text'>
https://github.com/ruby/uri/commit/32335923bf
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/32335923bf
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] More tests for `check_to`</title>
<updated>2025-07-12T07:07:05+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T06:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=859d74279a41ff7aa1672a02e634120cdfd4c4e7'/>
<id>859d74279a41ff7aa1672a02e634120cdfd4c4e7</id>
<content type='text'>
https://github.com/ruby/uri/commit/b1b5f9a476
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/b1b5f9a476
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class</title>
<updated>2025-07-12T03:31:54+00:00</updated>
<author>
<name>Nikita Levchuk</name>
<email>code@levch.uk</email>
</author>
<published>2024-12-06T10:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c97eba9bcd6188f39c827be3b40d29cef26c8eac'/>
<id>c97eba9bcd6188f39c827be3b40d29cef26c8eac</id>
<content type='text'>
https://github.com/ruby/uri/commit/2d7d2d9988
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/2d7d2d9988
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): the local part should not contain leading or trailing dots</title>
<updated>2025-07-12T03:31:53+00:00</updated>
<author>
<name>Nikita Levchuk</name>
<email>code@levch.uk</email>
</author>
<published>2024-11-06T14:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0685e8caf9550c2b4e3c378ab1656c3139b96596'/>
<id>0685e8caf9550c2b4e3c378ab1656c3139b96596</id>
<content type='text'>
https://github.com/ruby/uri/commit/618e2bb640
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/618e2bb640
</pre>
</div>
</content>
</entry>
<entry>
<title>test_mailto.rb: overwritten methods</title>
<updated>2016-12-17T00:58:47+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2016-12-17T00:58:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ba71a6873268039c5821edb310cf28ffecc6a66e'/>
<id>ba71a6873268039c5821edb310cf28ffecc6a66e</id>
<content type='text'>
* test/uri/test_mailto.rb (URI::TestMailTo#test_to_mailtext):
  merge overwritten methods.  [Bug #10774]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* test/uri/test_mailto.rb (URI::TestMailTo#test_to_mailtext):
  merge overwritten methods.  [Bug #10774]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>test_mailto.rb: adjust scope</title>
<updated>2016-12-17T00:58:46+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2016-12-17T00:58:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a37cc2d4d8273f0949a71e35dcf2f95d3b036809'/>
<id>a37cc2d4d8273f0949a71e35dcf2f95d3b036809</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
