[#41431] [ruby-trunk - Bug #5694][Open] Proc#arity doesn't take optional arguments into account. — Marc-Andre Lafortune <ruby-core@...>
Maybe we can add a new arity_range method that does this?
On Thu, Dec 1, 2011 at 6:54 PM, Yehuda Katz <wycats@gmail.com> wrote:
You could probably extract the information from #parameters, yeah.
On Thu, Dec 1, 2011 at 11:13 PM, Yehuda Katz <wycats@gmail.com> wrote:
Yeahit would be nice to be able to do:
[#41435] [ruby-trunk - Feature #5695][Open] CoffeeScript "is" and "isnt" keywords — Suraj Kurapati <sunaku@...>
[#41456] [ruby-trunk - Bug #5700][Open] fork {} segfaults during VM cleanup when run inside Fiber — Eric Wong <normalperson@...>
[#41478] [ruby-trunk - Feature #5707][Open] temporary file creation without finalizer and delegate. — Akira Tanaka <akr@...>
Akira Tanaka <akr@fsij.org> wrote:
2011/12/5 Eric Wong <normalperson@yhbt.net>:
[#41496] [ruby-trunk - Bug #5714][Open] Unexpected error of STDIN#read with non-ascii input on Windows XP — Heesob Park <phasis@...>
Hello,
Hello,
Hello,
[#41511] [ruby-trunk - Bug #5719][Open] Hash::[] can't handle 100000+ args — Nick Quaranto <nick@...>
[#41541] [ruby-trunk - Feature #5726][Open] Process::EXIT_SUCCESS and Process::EXIT_FAILURE — Akira Tanaka <akr@...>
[#41557] [ruby-trunk - Bug #5730][Open] Optinal block parameters assigns wrong — Yukihiro Matsumoto <matz@...>
2011/12/9 Yukihiro Matsumoto <matz@ruby-lang.org>:
Hi,
Hi Matz,
[#41581] [ruby-trunk - Bug #5737][Open] WEBrick doesn't support keep alive connections for 204 and 304 responses — Aaron Patterson <aaron@...>
[#41586] [ruby-trunk - Feature #5741][Open] Secure Erasure of Passwords — Martin Bosslet <Martin.Bosslet@...>
[#41592] My bug evaluation criteria — Marc-Andre Lafortune <ruby-core-mailing-list@...>
I don't think there is an official way to judge a bug, but for me it
[#41594] [ruby-trunk - Bug #5746][Open] Proc#curry too strict about lambda's arity. — Marc-Andre Lafortune <ruby-core@...>
[#41618] [ruby-trunk - Bug #5754][Open] Double require bug in 1.9.3 — Evan Phoenix <evan@...>
[#41630] redmine.ruby-lang.org -> bugs.ruby-lang.org — Shugo Maeda <shugo@...>
Hello,
[#41634] [ruby-trunk - Bug #5759][Open] flatten calls to_ary on everything — Thomas Sawyer <transfire@...>
[#41656] [ruby-trunk - Bug #5763][Open] sprintf not throwing error for wrong number of arguments — NagaChaitanya Vellanki <me@...>
[#41662] [ruby-trunk - Bug #5765][Open] [PATCH] modernize Timeout usage in net/{http,pop,smtp,telnet} — Eric Wong <normalperson@...>
[#41668] [ruby-trunk - Feature #5766][Open] Hash.each_with_object should behave differently when block's arity is 3 — Rodrigo Rosenfeld Rosas <rr.rosas@...>
[#41672] [ruby-trunk - Feature #5767][Open] Cache expanded_load_path to reduce startup time — Yura Sokolov <funny.falcon@...>
[#41681] Documentation of the language itself (syntax, meanings, etc) — Rodrigo Rosenfeld Rosas <rr.rosas@...>
Since Ruby is built on top of simple concepts, most of the documentation
Em 15-12-2011 19:23, Gary Wright escreveu:
On Dec 15, 2011, at 7:39 PM, Rodrigo Rosenfeld Rosas wrote:
Em 19-12-2011 19:38, Eric Hodel escreveu:
On Dec 19, 2011, at 3:04 PM, Rodrigo Rosenfeld Rosas wrote:
Em 19-12-2011 23:35, Eric Hodel escreveu:
[#41691] Ruby IRC Presence Problem — Eero Saynatkari <ruby-ml@...>
Hi,
[#41717] Feature : optional argument in File.join — Michel Demazure <michel@...>
In Windows, when using File.join, one often ends with a path containing
On Mon, Dec 19, 2011 at 6:09 AM, Michel Demazure <michel@demazure.com> wrote:
Luis Lavena wrote in post #1037331:
Hi,
On Tue, Dec 20, 2011 at 02:12, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On Tue, Dec 20, 2011 at 08:17, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Nikolai Weibull wrote in post #1037488:
[#41721] Ruby and oniguruma relation. — V咜 Ondruch <v.ondruch@...>
Hi everybody,
[#41725] [ruby-trunk - Feature #5778][Open] Allow WEBrick::HTTPResponse to send IO-duck-typed bodies — Alex Young <alex@...>
[#41728] [ruby-trunk - Feature #5781][Open] Query attributes (attribute methods ending in `?` mark) — Thomas Sawyer <transfire@...>
[#41774] [ruby-trunk - Feature #5788][Open] Thread#at_exit — Masaki Matsushita <glass.saga@...>
[#41780] [Backport93 - Backport #5793][Open] Please backport r33662, r33666 — Jon Forums <redmine@...>
[#41787] Breaking while loading — Nikolai Weibull <now@...>
Hi!
[#41797] [ruby-trunk - Feature #5805][Open] object_hexid — Thomas Sawyer <transfire@...>
[#41799] Best way to separate implementation specific code? — Luis Lavena <luislavena@...>
Hello,
2011/12/24 Luis Lavena <luislavena@gmail.com>:
Hello,
On Sun, Dec 25, 2011 at 10:51 PM, U.Nakamura <usa@garbagecollect.jp> wrote:
Hello,
Hello,
Hi,
On Tue, Dec 27, 2011 at 11:21 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
On Tue, Dec 27, 2011 at 11:44 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
[#41812] [ruby-trunk - Feature #5809][Open] Benchmark#bm: remove the label_width parameter — Benoit Daloze <redmine@...>
[#41841] YAML has become very slow under 1.9 — j.wuttke <j.wuttke@...>
The simple script
[#41848] [ruby-trunk - Feature #5826][Open] When the RUBY API_VERSION will be increased? — Ayumu AIZAWA <ayumu.aizawa@...>
[ruby-core:41813] [ruby-trunk - Feature #5474] keyword argument
Issue #5474 has been updated by Yusuke Endoh.
Assignee changed from Koichi Sasada to Yusuke Endoh
Hello,
I've committed my patches for keyword arguments, with fixes for
some problems reported during this discussion.
Please try it and let me know if you find any problem.
This feature still requires discussion, so I'm leaving this
ticket open.
--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Feature #5474: keyword argument
https://bugs.ruby-lang.org/issues/5474
Author: Yusuke Endoh
Status: Assigned
Priority: Normal
Assignee: Yusuke Endoh
Category: core
Target version: 2.0.0
Hello,
I'm sending a patch for keyword arguments.
(This feature had been discussed in #5454, but I'm re-creating
a new ticket because the old ticket was resigtered in ruby-dev)
Matz himself proposed this feature. It is also basically
promised to include the feature in 2.0. [ruby-core:39837]
I'm planning to commit the patch after it is reviewed by koichi.
But the detail of the spec is not fixed yet, and may be changed
drastically.
We would like to hear your comments and suggestions, especially,
with a use case and/or an actual experience.
The background of this proposal is that, in the recent Ruby,
the last argument (as a Hash) is often used to pass optional
information. This feature is intended to aid the style.
Look an example:
def create_point(x, y, color: "white", size: 1)
# keyword arguments ^^^^^^^^^^^^^^^^^^^^^^^ here!
p [x, y, color, size]
end
create_point(2, 3, color: "red")
#=> [2, 3, "red", 1]
The caller size is a traditional hash argument notation.
This feature is Hash parsing in the callee side.
(So it is more suitable to call it "keyword parameter."
But I use "keyword argument" because everyone calls so.)
We can implement the similar behavior in pure Ruby. However,
this feature is easier to read/write, and richer in the some
aspects:
- it raises an TypeError when unknown keyword is given
create_point(2, 3, style: "solid")
#=> unknown keyword (TypeError)
- you can use ** argument to suppress the TypeError and/or
to get the given hash itself:
def create_point(x, y, color: "white", size: 1, **h)
p [x, y, color, size, h]
end
create_point(2, 3, style: "solid")
#=> [2, 3, "red", 1, {:style=>"solid"}]
- it is easily used even when there is a rest argument
def create_point(x, y, *r, color: "solid", size: 1)
...
end
(a complex and non-essential code is required to
implement the same behavior in pure Ruby)
- there is room for optimizing the speed (though I have
not done any optimization yet)
An alternative design is to treat all parameters as keyword
arguments (as Evan said in [ruby-core:40195]).
def create_point(x, y, color = "white", size = 1)
p [x, y, color, size]
end
create_point(color: "red", x: 2, y: 3)
#=> [2, 3, "red", 1]
Actually I also like this, but I'm afraid if it is too flexible
and seems difficult to implement and optimize.
Thanks,
--
Yusuke Endoh <mame@tsg.ne.jp>
--
http://redmine.ruby-lang.org