<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/reline/test_reline.rb, branch v3_4_9</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/reline] Fix tempfile leaks</title>
<updated>2024-10-05T17:02:51+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-10-05T17:02:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=802445487e5e0abb91811c84c220c0b58da3ca0c'/>
<id>802445487e5e0abb91811c84c220c0b58da3ca0c</id>
<content type='text'>
(https://github.com/ruby/reline/pull/757)

https://github.com/ruby/reline/actions/runs/11187507536/job/31104699331#step:13:1064
```
Children under /tmp/rubytest.m48l5o:
* -rw------- 1 101 2024-10-02 17:43:51 +0000 rubyfile20241002-60503-bhbfgq
```

https://github.com/ruby/reline/commit/1287f97a6f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/757)

https://github.com/ruby/reline/actions/runs/11187507536/job/31104699331#step:13:1064
```
Children under /tmp/rubytest.m48l5o:
* -rw------- 1 101 2024-10-02 17:43:51 +0000 rubyfile20241002-60503-bhbfgq
```

https://github.com/ruby/reline/commit/1287f97a6f
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Fix FD leaks (https://github.com/ruby/reline/pull/752)</title>
<updated>2024-10-03T03:16:39+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-10-03T03:16:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9bd2f30d0a73e5fd01aa80cfb5fd1c61b9ef64ff'/>
<id>9bd2f30d0a73e5fd01aa80cfb5fd1c61b9ef64ff</id>
<content type='text'>
`PTY.spawn` with a block detaches the spawned process and leaves it
running in background even after exiting the given block.  It is the
responsibility of the caller to clean up the yielded IOs and PID.

https://github.com/ruby/ruby/actions/runs/11148759246/job/30986064044#step:13:950
```
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 9 : #&lt;File:/dev/pts/0&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 10 : #&lt;File:/dev/pts/0&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 11 : #&lt;File:/dev/pts/1&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 12 : #&lt;File:/dev/pts/1&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 13 : #&lt;File:/dev/pts/2&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 14 : #&lt;File:/dev/pts/2&gt;
```

https://github.com/ruby/reline/commit/f9f90da9e4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`PTY.spawn` with a block detaches the spawned process and leaves it
running in background even after exiting the given block.  It is the
responsibility of the caller to clean up the yielded IOs and PID.

https://github.com/ruby/ruby/actions/runs/11148759246/job/30986064044#step:13:950
```
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 9 : #&lt;File:/dev/pts/0&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 10 : #&lt;File:/dev/pts/0&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 11 : #&lt;File:/dev/pts/1&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 12 : #&lt;File:/dev/pts/1&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 13 : #&lt;File:/dev/pts/2&gt;
Leaked file descriptor: Reline::Test#test_tty_amibuous_width: 14 : #&lt;File:/dev/pts/2&gt;
```

https://github.com/ruby/reline/commit/f9f90da9e4
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Add a timeout to cursor_pos</title>
<updated>2024-10-02T17:36:35+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-10-02T17:36:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8f4277f40594333a7dcad21fe0ef9138a909e777'/>
<id>8f4277f40594333a7dcad21fe0ef9138a909e777</id>
<content type='text'>
(https://github.com/ruby/reline/pull/750)

https://github.com/ruby/reline/commit/dd4a654e5d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/750)

https://github.com/ruby/reline/commit/dd4a654e5d
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Accept colon-style hash in test assertion</title>
<updated>2024-08-05T15:53:45+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-08-05T15:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dbd36e1c23603df207b3d096f473a98c3cdddfff'/>
<id>dbd36e1c23603df207b3d096f473a98c3cdddfff</id>
<content type='text'>
(https://github.com/ruby/reline/pull/732)

Hash#inspect is proposed to change to {key: value, non_symbol_key =&gt; value} in https://bugs.ruby-lang.org/issues/20433#note-10

https://github.com/ruby/reline/commit/1fd73b358a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/732)

Hash#inspect is proposed to change to {key: value, non_symbol_key =&gt; value} in https://bugs.ruby-lang.org/issues/20433#note-10

https://github.com/ruby/reline/commit/1fd73b358a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Remove instance variable @first_char</title>
<updated>2024-06-06T11:20:29+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-06-06T11:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f465045dd6ef1a51cf181f9e4c038b905f79bd2c'/>
<id>f465045dd6ef1a51cf181f9e4c038b905f79bd2c</id>
<content type='text'>
(https://github.com/ruby/reline/pull/717)

When Reline reads EOF, Reline.readline should return nil if and only if input is empty

https://github.com/ruby/reline/commit/cc74b3686a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/717)

When Reline reads EOF, Reline.readline should return nil if and only if input is empty

https://github.com/ruby/reline/commit/cc74b3686a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Ensure no escape sequence before printing prompt</title>
<updated>2024-06-04T18:35:03+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-06-04T18:34:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=932ecd3a1c8a2c5094406063903866499176529e'/>
<id>932ecd3a1c8a2c5094406063903866499176529e</id>
<content type='text'>
(https://github.com/ruby/reline/pull/716)

https://github.com/ruby/reline/commit/f9227b5c89
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/716)

https://github.com/ruby/reline/commit/f9227b5c89
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Improve key binding match/matching check</title>
<updated>2024-06-03T13:15:05+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-06-03T13:14:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=91d4a7ae0c719697db7dd6dd64ca664b60c9de04'/>
<id>91d4a7ae0c719697db7dd6dd64ca664b60c9de04</id>
<content type='text'>
(https://github.com/ruby/reline/pull/709)

* Improve key binding match/matching check

* Rename key_actors to default_key_bindings

* Make key_stroke.expand always return a value

* Update add_default_key_binding to use a add_default_key_binding_by_keymap internally

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;

---------

https://github.com/ruby/reline/commit/353ec236e2

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/709)

* Improve key binding match/matching check

* Rename key_actors to default_key_bindings

* Make key_stroke.expand always return a value

* Update add_default_key_binding to use a add_default_key_binding_by_keymap internally

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;

---------

https://github.com/ruby/reline/commit/353ec236e2

Co-authored-by: Stan Lo &lt;stan001212@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Overhaul io gate structure</title>
<updated>2024-06-01T10:28:08+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan001212@gmail.com</email>
</author>
<published>2024-06-01T10:28:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cda69b5910494a745d87b7932547341cb2fefe3a'/>
<id>cda69b5910494a745d87b7932547341cb2fefe3a</id>
<content type='text'>
(https://github.com/ruby/reline/pull/666)

* Overhaul IO gate structure

1. Move IO related classes to `lib/reline/io/` directory.
2. Rename `GeneralIO` to `Dumb`.
3. Use IO classes as instances instead of classes.

* Update lib/reline/io/ansi.rb

Co-authored-by: tomoya ishida &lt;tomoyapenguin@gmail.com&gt;

---------

https://github.com/ruby/reline/commit/dc1518e1ac

Co-authored-by: tomoya ishida &lt;tomoyapenguin@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/666)

* Overhaul IO gate structure

1. Move IO related classes to `lib/reline/io/` directory.
2. Rename `GeneralIO` to `Dumb`.
3. Use IO classes as instances instead of classes.

* Update lib/reline/io/ansi.rb

Co-authored-by: tomoya ishida &lt;tomoyapenguin@gmail.com&gt;

---------

https://github.com/ruby/reline/commit/dc1518e1ac

Co-authored-by: tomoya ishida &lt;tomoyapenguin@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Avoid STDIN.winsize called in `require "reline"`</title>
<updated>2024-05-10T17:19:42+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-05-10T17:19:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=68b6fe70484b1fed2767fc9b838a487aa47d3560'/>
<id>68b6fe70484b1fed2767fc9b838a487aa47d3560</id>
<content type='text'>
(https://github.com/ruby/reline/pull/703)

https://github.com/ruby/reline/commit/21891c47c4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/703)

https://github.com/ruby/reline/commit/21891c47c4
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/reline] Reduce direct references to `Reline::IOGate`</title>
<updated>2023-07-07T17:27:25+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan001212@gmail.com</email>
</author>
<published>2023-07-07T17:27:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=24d9e21f84eced634b3e443ada2a57621b2b4b9b'/>
<id>24d9e21f84eced634b3e443ada2a57621b2b4b9b</id>
<content type='text'>
(https://github.com/ruby/reline/pull/566)

* Avoid referencing IOGate from IOGate classes

The only time those classes being used is when themselves being the IOGate.
So when referencing to IOGate, it's better to use `self` instead.

* Avoid referencing to IOGate from LineEditor directly

* Avoid referencing to IOGate from Core directly

* Reference to Reline.core directly

* Replace Reline::IOGate with Reline.core.io_gate
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/reline/pull/566)

* Avoid referencing IOGate from IOGate classes

The only time those classes being used is when themselves being the IOGate.
So when referencing to IOGate, it's better to use `self` instead.

* Avoid referencing to IOGate from LineEditor directly

* Avoid referencing to IOGate from Core directly

* Reference to Reline.core directly

* Replace Reline::IOGate with Reline.core.io_gate
</pre>
</div>
</content>
</entry>
</feed>
