[#72745] [Ruby trunk - Misc #11876] [Closed] Scheduled maintenance 2016/01/01 — shibata.hiroshi@...
Issue #11876 has been updated by Hiroshi SHIBATA.
[email protected] wrote:
[#72824] [Ruby trunk - Bug #11973] IO#advise should raise NotImplementedError on platforms that do not support that call — git@...
Issue #11973 has been updated by Chuck Remes.
[#72954] [Ruby trunk - Feature #12010] [Assigned] Exclude dot and dotdot from Dir#each — naruse@...
Issue #12010 has been reported by Yui NARUSE.
[email protected] wrote:
[#73313] [Ruby trunk - Bug #12007] [Open] Newly added Unicode data file doesn't get downloaded — shugo@...
SXNzdWUgIzEyMDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgU2h1Z28gTWFlZGEuCgpTdGF0dXMgY2hh
[#73372] [Ruby trunk - Misc #12004] Code of Conduct — benton@...
Issue #12004 has been updated by Benton Barnett.
On Sun, Jan 24, 2016 at 5:13 PM, <[email protected]> wrote:
[#73421] [Ruby trunk - Misc #12004] Code of Conduct — nekocat432@...
Issue #12004 has been updated by Ruby Dino.
I=E2=80=99m sorry, but this, like the code of merit, is merely a derailing =
T24gMjAxNi8wMS8yNiAwMTozMiwgQXVzdGluIFppZWdsZXIgd3JvdGU6Cj4gSeKAmW0gc29ycnks
On Tue, Jan 26, 2016 at 12:25 AM, Martin J. D=C3=BCrst <[email protected]=
[#73491] [Ruby trunk - Misc #12004] Code of Conduct — git@...
Issue #12004 has been updated by Chuck Remes.
They will never provide any numbers because they are not engineers and they
Coraline is a panelist on Ruby rogues and a very well respected member of
OK, sorry for previous comment. Let's try this way.
On Tue, Jan 26, 2016 at 5:15 PM, Andrew Kirilenko <
[#73558] [Ruby trunk - Misc #12004] Code of Conduct — andrew.kirilenko@...
Issue #12004 has been updated by Andrew Kirilenko.
Andrew, please stop digging. Your hole is only getting deeper.
>Andrew, please stop digging. Your hole is only getting deeper.
[#73586] [Ruby trunk - Misc #12004] Code of Conduct — andrew@...
Issue #12004 has been updated by Andrew Vit.
[#73593] [Ruby trunk - Bug #12034] RegExp does not respect file encoding directive — nobu@...
Issue #12034 has been updated by Nobuyoshi Nakada.
[ruby-core:73442] [CommonRuby - Feature #11541] Let attr_accessor, _reader & _writer return symbols of the defined methods
Issue #11541 has been updated by Petr Chalupa.
+1, this is also very useful for [low level concurrency proposals](https://bugs.ruby-lang.org/issues/12019). It allows to write `public attr :status, atomic: true` where `attr` returns array of 4 defined atomic helper methods. The array is accepted by `public` method which modifies the visibility of the helpers.
----------------------------------------
Feature #11541: Let attr_accessor, _reader & _writer return symbols of the defined methods
https://bugs.ruby-lang.org/issues/11541#change-56658
* Author: Johannes Barre
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
Since Ruby 2.1, `def` returns a symbol with the name of the just defined method, so you can easily pass it to visibility modifiers like `private`, `protected`, and `public`. Why not let `attr_reader` & friends return an array with the names of the defined methods, so we can easily write:
~~~
private attr_reader :method1, :method2
~~~
To fully support the example above, `private` would be required to accept also arrays with method names. Without it, it would require the star syntax, which would already be an improvement:
~~~~
private *attr_reader :method1, :method2
~~~~
I wrote two test cases to better illustrate the impact:
~~~~
test/ruby/test_module.rb:
def test_attr_return_value
c = Class.new
assert_equal(%i(reader1 reader2), c.class_eval { attr_reader(:reader1, :reader2) })
assert_equal(%i(writer1= writer2=), c.class_eval { attr_writer(:writer1, :writer2) })
assert_equal(%i(accessor1 accessor1= accessor2 accessor2=), c.class_eval { attr_accessor(:accessor1, :accessor2) })
end
test/ruby/test_method.rb:
def test_visibility_modifier_with_array
c = Class.new do
def m1; end
def m2; end
end
c.class_eval { private %i(m1 m2) }
assert(c.private_method_defined?(:m1))
assert(c.private_method_defined?(:m2))
c.class_eval { protected %w(m1 m2) }
assert(c.protected_method_defined?(:m1))
assert(c.protected_method_defined?(:m2))
c.class_eval { public :m1, [:m2] } # Not sure if this should be allowed.
assert(c.public_method_defined?(:m1))
assert(c.public_method_defined?(:m2))
assert_raise(NameError) do
c.class_eval { private %i(m1 m2 m3) }
end
assert(c.private_method_defined?(:m1))
assert(c.private_method_defined?(:m2))
assert_raise(TypeError) do
c.class_eval { protected [:m1, 2] }
end
assert(c.private_method_defined?(:m1))
assert_raise(TypeError) do
c.class_eval { public [:m1, [:m2]] } # Not sure about this case. Should it be allowed?
end
assert(c.public_method_defined?(:m1))
end
~~~~
WDYT? Thank you!
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>