[#72745] [Ruby trunk - Misc #11876] [Closed] Scheduled maintenance 2016/01/01 — shibata.hiroshi@...
Issue #11876 has been updated by Hiroshi SHIBATA.
shibata.hiroshi@gmail.com 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.
naruse@airemix.jp 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, <benton@bentonbarnett.com> 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 <duerst@it.aoyama.ac=
[#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:73531] [Ruby trunk - Feature #12023] Allow ivars to be used as method arguments
Issue #12023 has been updated by Nobuyoshi Nakada.
Description updated
With your patch, seems that `def initialize(@foo, @bar = @foo)` wouldn't work.
> ~~~diff
> + ID modified_acceptable_keywords[iseq->body->param.keyword->num];
Dynamic size array isn't allowed in C89.
----------------------------------------
Feature #12023: Allow ivars to be used as method arguments
https://bugs.ruby-lang.org/issues/12023#change-56744
* Author: Roger Nesbitt
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
I've found myself writing a lot of code similar to the following, especially when writing service-style classes:
~~~Ruby
class ResizeImage
def initialize(image, width:, height: width)
@image = image
@width = width
@height = height
end
end
~~~
Some other languages allow class property assignment on the constructor, and I thought this might be a great addition for Ruby, as Ruby likes DRY and doesn't like boilerplate.
~~~Ruby
class ResizeImage
def initialize(@image, @width:, @height: @width)
end
end
~~~
Please find attached a patch that implements ivars to be used as method arguments for lead, optional, post and kwarg arguments. The tests I've implemented should demo the feature if you'd like to see how it's used.
This is my first patch to Ruby, so I'm looking forward to learning from any feedback you are able to give. I'm not super happy with how I've implemented kwarg argument rewriting in the VM; this could be done during compilation, but I wasn't sure about adding another `ID*` to `iseq->body->param` or if the performance hit from this code would be acceptable (it's only run if a ivar argument was detected.)
I'll also note that this functionality is available to all methods, not just initialize. Although I can't see much of a use case for it on methods that aren't initialize, I also can't see the harm in allowing any method to use it.
Thanks for your consideration!
---Files--------------------------------
ruby-method-argument-ivars.diff (9.34 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>