[#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:41681] Documentation of the language itself (syntax, meanings, etc)

From: Rodrigo Rosenfeld Rosas <rr.rosas@...>
Date: 2011-12-15 16:58:45 UTC
List: ruby-core #41681
Since Ruby is built on top of simple concepts, most of the documentation 
can be read in the Core API and Standard Library API pages.

Unfortunately, I don't see to find any official reference (besides 
mentions to books) about the language syntax itself.

For instance, I wanted to know if this is possible:

class MyViewRenderer < DefaultRender # DefaultRender defines the 
'render' method
   def list
     render_and_return[view: 'not_allowed'] unless allowed?
     render view: 'list' # shouldn't get called
   end

   protected

   def render_and_return
     proc {|*args| render *args; return }
   end

   def allowed?
     false
   end
end

Yeah, I know several folks will point me out that I should be using 
catch-throw for achieving something like this, but that is not the point.

What I'm saying is that I can't find any official reference about the 
meanings of "return", "next" or "break", for instance. Nor can I find 
the reason why such construction is not allowed.

So, what is the reason why the proc with a return can only be called 
inside the method that created it?

Also, is there any documentation source that I'm missing?


Cheers,

Rodrigo.

P.S:
With regards to the catch-throw alternative, it means that I would need 
to have control over the class calling the method from MyViewRenderer, 
which may not be the case... What to do then?

I'm trying to avoid writing ugly code like this:

(render(...); return) if condition?

Or

if condition?
     render(...)
     return
end

Also, unless the API of DefaultRender explicitly says that render will 
always return a truthy value, I couldn't write something like

render(...) and return if condition?

In This Thread

Prev Next