[#41431] [ruby-trunk - Bug #5694][Open] Proc#arity doesn't take optional arguments into account. — Marc-Andre Lafortune <ruby-core@...>

27 messages 2011/12/01
[#41442] [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account. — Thomas Sawyer <transfire@...> 2011/12/01

[#41443] Re: [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account. — Yehuda Katz <wycats@...> 2011/12/01

Maybe we can add a new arity_range method that does this?

[#41496] [ruby-trunk - Bug #5714][Open] Unexpected error of STDIN#read with non-ascii input on Windows XP — Heesob Park <phasis@...>

22 messages 2011/12/06

[#41511] [ruby-trunk - Bug #5719][Open] Hash::[] can't handle 100000+ args — Nick Quaranto <nick@...>

13 messages 2011/12/07

[#41557] [ruby-trunk - Bug #5730][Open] Optinal block parameters assigns wrong — Yukihiro Matsumoto <matz@...>

14 messages 2011/12/08

[#41586] [ruby-trunk - Feature #5741][Open] Secure Erasure of Passwords — Martin Bosslet <Martin.Bosslet@...>

17 messages 2011/12/10

[#41672] [ruby-trunk - Feature #5767][Open] Cache expanded_load_path to reduce startup time — Yura Sokolov <funny.falcon@...>

13 messages 2011/12/15

[#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

23 messages 2011/12/15
[#41683] Re: Documentation of the language itself (syntax, meanings, etc) — Gary Wright <gwtmp01@...> 2011/12/15

[#41686] Re: Documentation of the language itself (syntax, meanings, etc) — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2011/12/16

Em 15-12-2011 19:23, Gary Wright escreveu:

[#41717] Feature : optional argument in File.join — Michel Demazure <michel@...>

In Windows, when using File.join, one often ends with a path containing

13 messages 2011/12/19
[#41719] Re: Feature : optional argument in File.join — Luis Lavena <luislavena@...> 2011/12/19

On Mon, Dec 19, 2011 at 6:09 AM, Michel Demazure <michel@demazure.com> wrot=

[#41720] Re: Feature : optional argument in File.join — Michel Demazure <michel@...> 2011/12/19

Luis Lavena wrote in post #1037331:

[#41728] [ruby-trunk - Feature #5781][Open] Query attributes (attribute methods ending in `?` mark) — Thomas Sawyer <transfire@...>

15 messages 2011/12/19

[#41799] Best way to separate implementation specific code? — Luis Lavena <luislavena@...>

Hello,

15 messages 2011/12/24
[#41800] Re: Best way to separate implementation specific code? — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/24

2011/12/24 Luis Lavena <luislavena@gmail.com>:

[#41811] Re: Best way to separate implementation specific code? — "U.Nakamura" <usa@...> 2011/12/26

Hello,

[#41817] Re: Best way to separate implementation specific code? — Luis Lavena <luislavena@...> 2011/12/26

On Sun, Dec 25, 2011 at 10:51 PM, U.Nakamura <usa@garbagecollect.jp> wrote:

[#41812] [ruby-trunk - Feature #5809][Open] Benchmark#bm: remove the label_width parameter — Benoit Daloze <redmine@...>

11 messages 2011/12/26

[ruby-core:41775] require_relative in eval

From: Matthias Wächter <matthias@...>
Date: 2011-12-22 12:00:28 UTC
List: ruby-core #41775
eval() [http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-eval] 
supports a second optional parameter specifying the filename this 
about-to-be-evaled piece of code is supposed to represent. This is nice, 
and the docs say that the filename is used for identifying the file in 
case of reporting syntax errors.

Now, Rack [http://rack.rubyforge.org/] contains rackup which supports 
loading special files (say, config.ru). These files contain normal Ruby 
code, except that the lines must be evaluated in the context of a 
Rack::Builder.new {…} context – this saves typing for the programmer. 
The downside is: The file cannot be just load()ed, include()d or 
require()d because the desired wrapping in the Builder creation is not 
possible either way. Only way out appeared to be eval().

Sad thing about eval() in this place: The code of the rackup file 
(config.ru) is evaled in the context of the Rack library code, so any 
attempt to use require_relative() or equivalent, targeted for the rackup 
file’s relativity, fails.

There are multiple ways around that limitation. E.g.

> $:.unshift File.expand_path("../lib", __FILE__)
> require 'foo'

(suggested by josh in https://github.com/rack/rack/pull/244). This 
solution is very explicit, low-level, equalizing and contradicting to 
the purpose of having little, high-level code to type in this place.

Another option is to actually implement said pull request 
[https://github.com/rack/rack/pull/244] into Rack. It monkey-patches a 
require_relative function into the newly created Builder object that 
knows about the actual rackup script’s location. I don’t want to rant 
about the pull request was being rejected, but instead, maybe we’ll find 
a better way to fix this within Ruby for the better of other projects, too.

What I’d ask for, is that the file name given to eval() is not only used 
for reporting syntax errors but for use in require_relative() – and 
possibly other situation, where the file context is relevant, as well.

What do you think?

– Matthias

In This Thread

Prev Next