[#147004] How and where Fixnum are created — "Eustaquio Rangel de Oliveira Jr." <eustaquiorangel@...>

-----BEGIN PGP SIGNED MESSAGE-----

10 messages 2005/07/01

[#147009] no clue — Joe Van Dyk <joevandyk@...>

I thought for all of five seconds for a good subject line for this

36 messages 2005/07/01
[#147028] Re: no clue — Daniel Brockman <daniel@...> 2005/07/02

Joe Van Dyk <joevandyk@gmail.com> writes:

[#151840] Re: no clue — Joe Van Dyk <joevandyk@...> 2005/08/12

On 7/1/05, Daniel Brockman <daniel@brockman.se> wrote:

[#151998] Re: no clue — Simon Krer <SimonKroeger@...> 2005/08/12

[#152051] Re: no clue — Simon Krer <SimonKroeger@...> 2005/08/13

Hi Joe,

[#152078] Re: no clue — Joe Van Dyk <joevandyk@...> 2005/08/13

On 8/13/05, Simon Krer <SimonKroeger@gmx.de> wrote:

[#152089] Re: no clue — Simon Krer <SimonKroeger@...> 2005/08/13

[#152093] Re: no clue — Joe Van Dyk <joevandyk@...> 2005/08/14

On 8/13/05, Simon Krer <SimonKroeger@gmx.de> wrote:

[#147044] Loading a file without cluttering the global namespace — Benjamin Hepp <benjamin-hepp@...>

Hello,

11 messages 2005/07/02

[#147056] class variable leading a double life — "Amarison" <amarison@...>

Can someone please explain why the @var variable leads a double life? One

20 messages 2005/07/02

[#147153] Ruby under Cygwin problems — JZ <usenet@...>

Whatever Ruby module I want to install under Cygwin I always get the same

30 messages 2005/07/04
[#147236] Re: Ruby under Cygwin problems — "karlin.fox@..." <karlin.fox@...> 2005/07/05

> No this is not the problem, it's just one more of this quick and dirty hacks (that i don't like in ruby).

[#147239] Re: Ruby under Cygwin problems — "Ryan Leavengood" <mrcode@...> 2005/07/05

karlin.fox@gmail.com said:

[#147280] Extract/Parse String? — tuyet.ctn@...

How do I extract "treeframe1120266500902" from this String class

12 messages 2005/07/06

[#147300] Inheriting Array and slice() behaviour — Sylvain Joyeux <sylvain.joyeux@...>

I have a class inheriting Array, and I expected slice() and []

43 messages 2005/07/06
[#147327] Re: Inheriting Array and slice() behaviour — Yukihiro Matsumoto <matz@...> 2005/07/06

Hi,

[#147348] Re: Inheriting Array and slice() behaviour — "Robert Klemme" <bob.news@...> 2005/07/06

William Morgan <wmorgan-ruby-talk@masanjin.net> wrote:

[#147437] Re: Inheriting Array and slice() behaviour — William Morgan <wmorgan-ruby-talk@...> 2005/07/07

Excerpts from Robert Klemme's mail of 6 Jul 2005 (EDT):

[#147443] Re: Inheriting Array and slice() behaviour — "Ara.T.Howard" <Ara.T.Howard@...> 2005/07/07

On Fri, 8 Jul 2005, William Morgan wrote:

[#147465] Re: Inheriting Array and slice() behaviour — William Morgan <wmorgan-ruby-talk@...> 2005/07/07

Excerpts from Ara.T.Howard's mail of 7 Jul 2005 (EDT):

[#147483] Re: Inheriting Array and slice() behaviour — Pit Capitain <pit@...> 2005/07/07

William Morgan schrieb:

[#147355] Major web host supports Rails — bertrandmuscle@...

One of the biggest web hosts on the internet (Dreamhost) now supports

32 messages 2005/07/06
[#147761] Re: Major web host supports Rails — Dennis Roberts <denrober@...> 2005/07/11

Want to support Ruby? Use Textdrive (http://www.textdrive.com/).

[#147421] Ruby as mathematical language — "none" <webb.sprague@...>

Hi Ruby world.

27 messages 2005/07/07

[#147504] ruby-1.8.2: test.rb: Seg Fault in test_check "exception" — me2faster@...

I reduced the sample/test.rb to just the test_check "exception"

12 messages 2005/07/07

[#147506] Ruby in XML. — John Carter <john.carter@...>

I have just stuck this on..

16 messages 2005/07/08

[#147542] Re: accessing index inside map — "Pe, Botp" <botp@...>

nobuyoshi nakada [mailto:nobuyoshi.nakada@ge.com] wrote:

26 messages 2005/07/08
[#147548] Re: accessing index inside map — "Robert Klemme" <bob.news@...> 2005/07/08

Pe, Botp wrote:

[#147651] Strings vs arrays — Luke Worth <luke@...>

Hi.

25 messages 2005/07/09
[#147670] Re: Strings vs arrays — Daniel Brockman <daniel@...> 2005/07/09

Luke Worth <luke@worth.id.au> writes:

[#147711] Programming the Lego robots using Ruby technology. — Victor Reyes <victor.reyes@...>

Do anyone knows if there is a Ruby API to program the Lego robots?

8 messages 2005/07/10
[#147712] Re: Programming the Lego robots using Ruby technology. — "daz" <dooby@...10.karoo.co.uk> 2005/07/11

[#147720] Re: accessing index inside map — "Pe, Botp" <botp@...>

Yukihiro Matsumoto [mailto:matz@ruby-lang.org] wrote:

28 messages 2005/07/11
[#147722] Re: accessing index inside map — Yukihiro Matsumoto <matz@...> 2005/07/11

Hi,

[#147790] class_attr_accessor — "Jeffrey Moss" <jeff@...>

I was playing around with class variables and class instance variables

16 messages 2005/07/11

[#147895] Updating GUIs — Joe Van Dyk <joevandyk@...>

Hi,

22 messages 2005/07/12

[#147952] Initialization via a Module — Gavin Kistner <gavin@...>

I have a module that needs to set a few instance variables on the

17 messages 2005/07/13

[#148046] Ruby has ruined my C++ — John Carter <john.carter@...>

These are exciting days in the world of C++. Every month the C/C++ User

52 messages 2005/07/13
[#148152] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — Kero <kero@...> 2005/07/14

> Two!

[#148497] Re: ] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — tony summerfelt <snowzone5@...> 2005/07/17

> After 4 years, Ruby still hasn't ruined itself.

[#148630] Re: ] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — mathew <meta@...> 2005/07/18

tony summerfelt wrote:

[#148709] Re: ] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — Daniel Amelang <daniel.amelang@...> 2005/07/18

Let's say that I have this...friend...um yea. And this 'friend' was

[#148711] Re: ] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — Jacob Fugal <lukfugl@...> 2005/07/18

On 7/18/05, Daniel Amelang <daniel.amelang@gmail.com> wrote:

[#148811] Re: ] Re: Ruby has ruined my Java (was Re: Ruby has ruined my C++) — Kero <kero@...> 2005/07/19

> Ha! You've reproduced my code almost exactly :)

[#148067] Ruby momentum? — Preston Crawford <me@...>

I'm an outsider to the Ruby community. I've used it a time or two,

62 messages 2005/07/14
[#148248] Re: Ruby momentum? — "gregarican" <greg.kujawa@...> 2005/07/15

Zach Dennis wrote:

[#148303] Re: Ruby momentum? — Devin Mullins <twifkak@...> 2005/07/15

Where I work (and I imagine most places), they don't bring developers on

[#148583] Re: Ruby momentum? — tsuraan <tsuraan@...> 2005/07/18

> *Actually when I've mentioned Ruby at work it's inspired more often a

[#148594] Re: Ruby momentum? — Kirk Haines <khaines@...> 2005/07/18

On Monday 18 July 2005 7:41 am, tsuraan wrote:

[#148104] difference? — G畸or SEBESTYノN <segabor@...>

Hi,

15 messages 2005/07/14

[#148229] Sampling (#39) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

97 messages 2005/07/15
[#148233] Re: [QUIZ] Sampling (#39) — James Edward Gray II <james@...> 2005/07/15

On Jul 15, 2005, at 8:00 AM, Ruby Quiz wrote:

[#148269] Re: [QUIZ] Sampling (#39) — Cassio Pennachin <pennachin@...> 2005/07/15

On 7/15/05, James Edward Gray II <james@grayproductions.net> wrote:

[#148273] Re: [QUIZ] Sampling (#39) — Jim Freeze <jim@...> 2005/07/15

* Cassio Pennachin <pennachin@gmail.com> [2005-07-16 03:04:12 +0900]:

[#148275] Re: [QUIZ] Sampling (#39) — Cassio Pennachin <pennachin@...> 2005/07/15

> Shouldn't those number be more like

[#148276] Re: [QUIZ] Sampling (#39) — Belorion <belorion@...> 2005/07/15

On 7/15/05, Cassio Pennachin <pennachin@gmail.com> wrote:

[#148284] Re: [QUIZ] Sampling (#39) — David Brady <ruby_talk@...> 2005/07/15

Belorion wrote:

[#148317] What does this construct mean? — "Casper" <caspertonka@...>

1. class MyController < ActionController::Base

22 messages 2005/07/16
[#148651] Re: What does this construct mean? — "Casper" <caspertonka@...> 2005/07/18

Devin Mullins wrote:

[#148656] Re: What does this construct mean? — "Ara.T.Howard" <Ara.T.Howard@...> 2005/07/18

On Tue, 19 Jul 2005, Casper wrote:

[#148321] Cascading <=> comparisons — Garance A Drosehn <drosihn@...>

Let's say I have a hash with some values in it, and I want to

15 messages 2005/07/16

[#148338] delaying string evaluation — Navindra Umanee <navindra@...>

Hi,

20 messages 2005/07/16
[#148339] Re: delaying string evaluation — Eric Hodel <drbrain@...7.net> 2005/07/16

On 16 Jul 2005, at 01:23, Navindra Umanee wrote:

[#148361] Re: delaying string evaluation — Navindra Umanee <navindra@...> 2005/07/16

Eric Hodel <drbrain@segment7.net> wrote:

[#148341] Just seen on c.l.py — Stephen Kellett <snail@...>

Hi Folks,

23 messages 2005/07/16
[#148418] Re: Just seen on c.l.py — ptkwt@... (Phil Tomson) 2005/07/16

In article <05th9VCgqN2CFwW4@objmedia.demon.co.uk>,

[#148357] Ruby VS PHP — Tristan Knowles <cydonia_1@...>

I was chatting with a PHP dev friend tonight, he is a

38 messages 2005/07/16
[#148396] Re: Ruby VS PHP — schlu-do@... (Dominik Schlter) 2005/07/16

Hi,

[#148384] `not' in parameter lists — Daniel Brockman <daniel@...>

I just noticed that all of the following give syntax errors:

18 messages 2005/07/16

[#148402] Nonblocking Sockets — James Edward Gray II <james@...>

Is this the "standard" way to make a nonblocking Socket in Ruby?

16 messages 2005/07/16

[#148542] Refactoring Tycho API - Opinions wanted — Hal Fulton <hal9000@...>

I've been revisiting my favorite Ruby project in the past

24 messages 2005/07/18

[#148689] Re: `not' in parameter lists — twifkak@...

On Jul 17, 2005, at 2:34 PM, Daniel Brockman wrote:

13 messages 2005/07/18

[#148721] Ruby/Rails as a starter language? — "SomeDude" <somedude@...>

Hello,

108 messages 2005/07/18
[#148736] Re: Ruby/Rails as a starter language? — vanek@... 2005/07/19

If you don't need to get involved in web programming right away, gawk

[#148743] Re: Ruby/Rails as a starter language? — James Britt <james_b@...> 2005/07/19

vanek@acd.net wrote:

[#148751] Re: Ruby/Rails as a starter language? — Navindra Umanee <navindra@...> 2005/07/19

James Britt <james_b@neurogami.com> wrote:

[#148752] Re: Ruby/Rails as a starter language? — Stefan Lang <langstefan@...> 2005/07/19

On Tuesday 19 July 2005 09:41, Navindra Umanee wrote:

[#148783] Re: Ruby/Rails as a starter language? — Mark Volkmann <r.mark.volkmann@...> 2005/07/19

On 7/19/05, Stefan Lang <langstefan@gmx.at> wrote:

[#148870] Re: Ruby/Rails as a starter language? — Hal Fulton <hal9000@...> 2005/07/19

Mark Volkmann wrote:

[#148873] Re: Ruby/Rails as a starter language? — Daniel Amelang <daniel.amelang@...> 2005/07/19

> In Java, classes aren't objects.

[#148875] Re: Ruby/Rails as a starter language? — Devin Mullins <twifkak@...> 2005/07/19

Daniel Amelang wrote:

[#148880] Re: Ruby/Rails as a starter language? — "Adam P. Jenkins" <thorin@...> 2005/07/20

Devin Mullins wrote:

[#148961] Re: [WAY OT] Re: Ruby/Rails as a starter language? — ptkwt@... (Phil Tomson) 2005/07/20

In article <Pine.LNX.4.62.0507192121430.10750@harp.ngdc.noaa.gov>,

[#148969] Re: [WAY OT] Re: Ruby/Rails as a starter language? — Rick Nooner <rick@...> 2005/07/20

On Thu, Jul 21, 2005 at 02:05:56AM +0900, Phil Tomson wrote:

[#148972] Re: [WAY OT] Re: Ruby/Rails as a starter language? — Jim Freeze <jim@...> 2005/07/20

* Rick Nooner <rick@nooner.net> [2005-07-21 02:59:56 +0900]:

[#148975] Re: [WAY OT] Re: Ruby/Rails as a starter language? — Rick Nooner <rick@...> 2005/07/20

On Thu, Jul 21, 2005 at 03:21:08AM +0900, Jim Freeze wrote:

[#148988] Re: [WAY OT] Re: Ruby/Rails as a starter language? — Jim Freeze <jim@...> 2005/07/20

* Rick Nooner <rick@nooner.net> [2005-07-21 03:57:35 +0900]:

[#148993] Re: [WAY OT] Re: Ruby/Rails as a starter language? — Rick Nooner <rick@...> 2005/07/20

On Thu, Jul 21, 2005 at 04:47:41AM +0900, Jim Freeze wrote:

[#149008] Ruby/OCaml Was Re: [WAY OT] Re: Ruby/Rails as a starter language? — Rick Nooner <rick@...> 2005/07/20

> I was just at the OCaml site,

[#148730] Memory profiling? — Scott Ellsworth <scott@...>

Hi, all.

12 messages 2005/07/19

[#148763] nil for unassigned keys — Simon Strandgaard <neoneye@...>

Sometimes I find myself writing :key=>true,

17 messages 2005/07/19

[#149035] C extension makes things slower — ptkwt@... (Phil Tomson)

In general I've always seen things speed up when I've writtten C

16 messages 2005/07/21

[#149059] Segmentation fault with a threads/forks script — Lucas Nussbaum <lucas@...>

Hi,

13 messages 2005/07/21
[#149069] Re: [BUG] Segmentation fault with a threads/forks script — "Ara.T.Howard" <Ara.T.Howard@...> 2005/07/21

On Thu, 21 Jul 2005, Lucas Nussbaum wrote:

[#149153] FreeRIDE: Where does the output go? — "basi" <basi_lio@...>

I'm trying out FreeRIDE and I have a truly embarrassing question.

15 messages 2005/07/22

[#149184] Drawing Trees (#40) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

18 messages 2005/07/22

[#149198] Abstract class or interface? — EdUarDo <eduardo.yanezNOSPAM@...>

Hi all again :),

13 messages 2005/07/22

[#149286] Local Instance Methods — "Trans" <transfire@...>

Hi All--

25 messages 2005/07/23

[#149302] Any interest in writing gui library on top of qtruby? — meruby@...

wax is a gui written on top of wxPython. It allows seamless integration

19 messages 2005/07/23

[#149322] Lisp on Lines — "luke" <lduncalfe@...>

Read on the comp.lang.lisp group that someone is developing 'Lisp on Lines'

44 messages 2005/07/24
[#149343] Re: Lisp on Lines — "Ara.T.Howard" <Ara.T.Howard@...> 2005/07/24

On Sun, 24 Jul 2005, luke wrote:

[#149366] Re: Lisp on Lines — "William James" <w_a_x_man@...> 2005/07/24

How much less powerful than Lisp is Ruby?

[#149397] Nitro + Og 0.21.0 Compiler, Og custom joins, Og dynamic injection, new builder — "George Moschovitis" <george.moschovitis@...>

Hello everyone,

13 messages 2005/07/25

[#149481] What's so special about operators, built-in classes and modules? — Jim Freeze <jim@...>

I just noticed this little quirk. Is there something

30 messages 2005/07/25

[#149490] Trying to understand symbols — "Sam Kong" <sam.s.kong@...>

Hello!

18 messages 2005/07/25

[#149515] Factory Patterns in Ruby — Lyndon Samson <lyndon.samson@...>

Factory is a very common pattern in the java world, in some places

17 messages 2005/07/26

[#149555] — "Adrian Petru Dimulescu" <adrian.dimulescu@...>

Hello,

13 messages 2005/07/26

[#149616] Next Official Ruby Version

Is it somehow planned to build a new official Ruby before Ruby 2, that means a version called 1.10 or so?

26 messages 2005/07/26

[#149654] (X)Emacs users going to RubyCOnf — Forrest Chang <fkc_email-news@...>

Hi All:

14 messages 2005/07/27

[#149720] Re: What's so special about operators, built-in classes and modules? — twifkak@...

>Then you will have complex network of classes instead of simple tree

56 messages 2005/07/27
[#149765] Re: What's so special about operators, built-in classes and modules? — Daniel Brockman <daniel@...> 2005/07/28

gabriele renzi <surrender_it@remove-yahoo.it> writes:

[#149770] Re: What's so special about operators, built-in classes and modules? — Yukihiro Matsumoto <matz@...> 2005/07/28

Hi,

[#149772] Re: What's so special about operators, built-in classes and modules? — Devin Mullins <twifkak@...> 2005/07/28

Yukihiro Matsumoto wrote:

[#149773] Re: What's so special about operators, built-in classes and modules? — Yukihiro Matsumoto <matz@...> 2005/07/28

Hi,

[#149776] Re: What's so special about operators, built-in classes and modules? — Devin Mullins <twifkak@...> 2005/07/28

Yukihiro Matsumoto wrote:

[#149905] Re: What's so special about operators, built-in classes and modules? — Daniel Brockman <daniel@...> 2005/07/28

Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#149783] Ruby in embedded applications — "treefrog" <stephen.hill@...>

Hi folks,

14 messages 2005/07/28

[#149793] Idea for Ruby 2.0 — Nikolai Weibull <mailing-lists.ruby-talk@...>

Lately I've found myself using pseudo-anonymous variables a lot, e.g.,

24 messages 2005/07/28

[#149801] Combination of two arrays — Claus Spitzer <docboobenstein@...>

Greetings!

18 messages 2005/07/28

[#149876] Linux Journal article on Ruby — pat eyler <pat.eyler@...>

http://www.linuxjournal.com/article/8356 it's always nice to see another

13 messages 2005/07/28

[#149968] Which Regex-Engine will be used in Ruby 1.8.3 Release?

One short question.

12 messages 2005/07/29

[#149982] Chopping the beginning of a string elegantly — "francisrammeloo@..." <francisrammeloo@...>

Hi all,

13 messages 2005/07/29

[#150133] Ruby-Python; using python from within ruby — "Norjee" <Norjee@...>

At the moment I'm looking at rails, it seems like a great framework.

13 messages 2005/07/30

[#150154] Ruby-Oniguruma interoperability on Named Groups

Let me first explain the reason for and the kind of this message.

10 messages 2005/07/30

[#150205] Yet Another useless Ruby 2 Idea — gabriele renzi <surrender_it@...>

Hi gurus and nubys,

69 messages 2005/07/31
[#150680] Re: Yet Another useless Ruby 2 Idea — Daniel Brockman <daniel@...> 2005/08/04

Jeff Wood <jeff.darklight@gmail.com> writes:

[#150684] Re: Yet Another useless Ruby 2 Idea — Austin Ziegler <halostatue@...> 2005/08/04

On 8/3/05, Daniel Brockman <daniel@brockman.se> wrote:

[#150688] Re: Yet Another useless Ruby 2 Idea — Jeff Wood <jeff.darklight@...> 2005/08/04

I'm not saying there are NO features of python that are cool... I like

[#150860] Re: Yet Another useless Ruby 2 Idea — gabriele renzi <surrender_it@...> 2005/08/05

Jeff Wood ha scritto:

[#150899] Re: Yet Another useless Ruby 2 Idea — Jacob Fugal <lukfugl@...> 2005/08/05

On 8/5/05, gabriele renzi <surrender_it@remove-yahoo.it> wrote:

[#150910] Re: Yet Another useless Ruby 2 Idea — gabriele renzi <surrender_it@...> 2005/08/05

Jacob Fugal ha scritto:

[#151275] Re: Yet Another useless Ruby 2 Idea — mathew <meta@...> 2005/08/08

gabriele renzi wrote:

[#151354] Re: Yet Another useless Ruby 2 Idea — gabriele renzi <surrender_it@...> 2005/08/09

mathew ha scritto:

Re: [SUMMARY] SerializableProc (#38)

From: "Jeffrey Moss" <jeff@...>
Date: 2005-07-14 16:34:06 UTC
List: ruby-talk #148128
Has anybody thought about serialized enclosures? I was thinking of a way to 
use enclosures across multiple apache requests, and came to the conclusion 
that it was too much trouble. In this case I just use a standard proc object 
and it gets re-initialized on each requests and don't serialize it, but I 
always thought it would be nice to maintain some sort of persistent state 
across requests.

Wouldn't it be possible to write a C extension for serializable closures?

-Jeff

----- Original Message ----- 
From: "Ruby Quiz" <james@grayproductions.net>
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>
Sent: Thursday, July 14, 2005 6:51 AM
Subject: [SUMMARY] SerializableProc (#38)


> The solutions this time show some interesting differences in approach, so 
> I want
> to walk through a handful of them below.  The very first solution was from 
> Robin
> Stocker and that's a fine place to start.  Here's the class:
>
> class SerializableProc
>
>   def initialize( block )
>     @block = block
>     # Test if block is valid.
>     to_proc
>   end
>
>   def to_proc
>     # Raises exception if block isn't valid, e.g. SyntaxError.
>     eval "Proc.new{ #{@block} }"
>   end
>
>   def method_missing( *args )
>     to_proc.send( *args )
>   end
>
> end
>
> It can't get much simpler than that.  The main idea here, and in all the
> solutions, is that we need to capture the source of the Proc.  The source 
> is
> just a String so we can serialize that with ease and we can always create 
> a new
> Proc if we have the source.  In other words, Robin's main idea is to go
> (syntactically) from this:
>
> Proc.new {
> puts "Hello world!"
> }
>
> To this:
>
> SerializableProc.new %q{
> puts "Hello world!"
> }
>
> In the first pure Ruby version we're building a Proc with the block of 
> code to
> define the body.  In the second SerializableProc version, we're just 
> passing a
> String to the constructor that can be used to build a block.  Christian
> Neukirchen had something very interesting to say about the change:
>
> Obvious problems of this approach are the lack of closures and editor
> support (depending on the inverse quality of your editor :P)...
>
> We'll get back to the lack of closures issue later, but I found the 
> "inverse
> quality of your editor" claim interesting.  The meaning is that a poor 
> editor
> may not consider %q{...} equivalent to '...'.  If it doesn't realize a 
> String is
> being entered, it may continue to syntax highlight the code inside.  Of 
> course,
> you could always remove the %q whenever you want to see the code 
> highlighting,
> but that's tedious.
>
> Getting back to Robin's class, initialize() just stores the String and 
> creates a
> Proc from it so an Exception will be thrown at construction time if fed 
> invalid
> code.  The method to_proc() is what builds the Proc object by wrapping the
> String in "Proc.new { ... }" and calling eval().  Finally, method missing 
> makes
> SerializableProc behave close to a Proc.  Anytime it sees a method call 
> that
> isn't initialize() or to_proc(), it creates a Proc object and forwards the
> message.
>
> We don't see anything specific to Serialization in Robin's code, because 
> both
> Marshal (PStore uses Marshal) and YAML can handle a custom class with 
> String
> instance data.  Like magic, it all just works.
>
> Robin had a complaint though:
>
> I imagine my solution is not very fast, as each time a method on the
> SerializableProc is called, a new Proc object is created.
>
> The object could be saved in an instance variable @proc so that speed is
> only low on the first execution. But that would require the definition of
> custom dump methods for each Dumper so that it would not attempt to dump
> @proc.
>
> My own solution (and others), do cache the Proc and define some custom 
> dump
> methods.  Let's have a look at how something like that comes out:
>
> class SerializableProc
> def self._load( proc_string )
> new(proc_string)
> end
>
> def initialize( proc_string )
> @code = proc_string
> @proc = nil
> end
>
> def _dump( depth )
> @code
> end
>
> def method_missing( method, *args )
> if to_proc.respond_to? method
> @proc.send(method, *args)
> else
> super
> end
> end
>
> def to_proc(  )
> return @proc unless @proc.nil?
>
> if @code =~ /\A\s*(?:lambda|proc)(?:\s*\{|\s+do).*(?:\}|end)\s*\Z/
> @proc = eval @code
> elsif @code =~ /\A\s*(?:\{|do).*(?:\}|end)\s*\Z/
> @proc = eval "lambda #{@code}"
> else
> @proc = eval "lambda { #{@code} }"
> end
> end
>
> def to_yaml(  )
> @proc = nil
> super
> end
> end
>
> My initialize() is the same, save that I create a variable to hold the 
> Proc
> object and I wasn't clever enough to trigger the early Exception when the 
> code
> is bad.  My to_proc() looks scary but I just try to accept a wider range 
> of
> Strings, wrapping them in only what they need.  The end result is the 
> same.
> Note that any Proc created is cached.  My method_missing() is also very 
> similar.
> If the Proc object responds to the method, it is forwarded.  The first 
> line of
> method_missing() calls to_proc() to ensure we've created one.  After that, 
> it
> can safely use the @proc variable.
>
> The _load() class method and _dump() instance method is what it takes to 
> support
> Marshal.  First, _dump() is expected to return a String that could be used 
> to
> rebuild the instance.  Then, _load() is passed that String on reload and
> expected to return the recreated instance.  The String choice is simple in 
> this
> case, since we're using the source.
>
> There are multiple ways to support YAML serialization, but I opted for the 
> super
> simple cheat.  YAML can't serialize a Proc, but it's just a cache that can
> always be restored.  I just override to_yaml() and clear the cache before
> handing serialization back to the default method.  My code is unaffected 
> by the
> Proc's absence and it will recreate it when needed.
>
> Taking one more step, Dominik Bathon builds the Proc in the constructor 
> and
> never has to recreate it:
>
> require "delegate"
> require "yaml"
>
> class SProc < DelegateClass(Proc)
>
>     attr_reader :proc_src
>
>     def initialize(proc_src)
>         super(eval("Proc.new { #{proc_src} }"))
>         @proc_src = proc_src
>     end
>
>     def ==(other)
>         @proc_src == other.proc_src rescue false
>     end
>
>     def inspect
>         "#<SProc: #{@proc_src.inspect}>"
>     end
>     alias :to_s :inspect
>
>     def marshal_dump
>         @proc_src
>     end
>
>     def marshal_load(proc_src)
>         initialize(proc_src)
>     end
>
>     def to_yaml(opts = {})
>         YAML::quick_emit(self.object_id, opts) { |out|
>             out.map("!rubyquiz.com,2005/SProc" ) { |map|
>                 map.add("proc_src", @proc_src)
>             }
>         }
>     end
>
> end
>
> YAML.add_domain_type("rubyquiz.com,2005", "SProc") { |type, val|
>     SProc.new(val["proc_src"])
> }
>
> Dominik uses the delegate library, instead of the method_missing() trick.
> That's a two step process.  You can see the first step when SPoc is 
> defined to
> inherit from DelegateClass(Proc), which sets a type for the object so 
> delegate
> knows which messages to forward.  The second step is the first line of the
> constructor, which passes the delegate object to the DelegateClass. 
> That's the
> instance that will receive forwarded messages.  Dominik also defined a 
> custom
> ==(), "because that doesn't really work with method_missing/delegate."
>
> Dominik's code uses a different interface to support Marshal, but does the 
> same
> thing I did, as you can see.  The YAML support is different. 
> SProc.to_yaml()
> spits out a new YAML type, that basically just emits the source.  The code
> outside of the class adds the YAML support to read this type back in, 
> whenever
> it is encountered.  Here's what the class looks like when it's resting in 
> a YAML
> file:
>
> !rubyquiz.com,2005/SProc
> proc_src: |2-
>    |*args|
>           puts "Hello world"
>           print "Args: "
>           p args
>
> The advantage here is that the YAML export procedure never touches the 
> Proc so
> it doesn't need to be hidden or removed and rebuilt.
>
> Florian's solution is also worth mention, though it takes a completely 
> different
> road to solving the problem.  Time and space don't allow me to recreate 
> and
> annotate the code here, but Florian described the premise well in the 
> submission
> message:
>
> I wrote this a while ago and it works by extracting a proc's origin file
> name and line number from its .inspect string and using the source code
> (which usually does not have to be read from disc) -- it works with
> procs generated in IRB, eval() calls and regular files. It does not work
> from ruby -e and stuff like "foo".instance_eval "lambda {}".source
> probably doesn't work either.
>
> Usage:
>
>    code = lambda { puts "Hello World" }
>    puts code.source
>    Marshal.load(Marshal.dump(code)).call
>    YAML.load(code.to_yaml).call
>
> The code itself is a fascinating read.  It uses the relatively unknown
> SCRIPT_LINES__ Hash, has great tricks like overriding eval() to capture 
> that
> source, and even implements a partial Ruby parser with standard libraries. 
> I'm
> telling you, that code reads like a good mystery novel for programmers. 
> Don't
> miss it!
>
> One last point.  I said in the quiz all this is just a hack, no matter how
> useful it is.  Dave Burt sent a message to Ruby talk along these lines:
>
> Proc's documentation tells us that "Proc objects are blocks of code that
> have been bound to a set of local variables." (That is, they are 
> "closures"
> with "bindings".) Do any of the proposed solutions so far store local
> variables?
>
> # That is, can the following Proc be serialized?
>   local_var = 42
>   code = proc { local_var += 1 }  # <= what should that look like in YAML?
>   code.call  #=> 43
>
> An excellent point.  These toys we're creating have serious limitations to 
> be
> sure.  I assume this is the very reason Ruby's Procs cannot be serialized.
> Using binding() might make it possible to work around this problem in some
> instances, but there are clearly some Procs that cannot be cleanly 
> serialized.
>
> My thanks to all who committed such wonderful code and discussion to this 
> week's
> quiz.  I know I learned multiple new things and I hope others did too.
>
> Tomorrow we have a quiz to sample some algorithmic fun...
> 


In This Thread