[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11492] Re: eval-context problem (bug?)

From: David Alan Black <dblack@...>
Date: 2001-02-24 23:25:07 UTC
List: ruby-talk #11492
Hello --

On Sun, 25 Feb 2001, Clemens Wyss wrote:

> Hi all,
> the following code (part of this is from "Programming Ruby"):

[...]

> Produces the following error:
> D:\Projekte\rubychannel\ProgrammingRuby\html\test.rb:34:in `eval':
> (eval):15:in `getBinding': undefined method `doc' for Test::Example:Class
> (NameError) 
>         from D:\Projekte\rubychannel\ProgrammingRuby\html\test.rb:34
> 
> This does not happen when eval-uating in the default-(i.e. main-)context.
> 
> Is this a bug or an executing context related feature?

I believe it's all feature.  Here's a stripped-down little test:

  content = '
  class Module
    p self

    def doc(s)
      puts s
    end
  end

  class Example
    doc("Doc...")
  end
  '

  class Test
    def getBinding
      binding
    end
  end

  eval(content, Test.new.getBinding)

Output:

  Test::Module
  wyss.rb:21:in `eval': (eval):11:in `getBinding': undefined method
  `doc' for Test::Example:Class (NameError) from wyss.rb:21

The eval is bound to the context of class Test -- so when the string
gets eval'd, the class you're modifying is class Test::Module, not of
class Module.  

This becomes visible through several ways of forcing it to work.
(All of these are geared toward my simplified example -- I haven't
fitted them to yours, but I think the principles are the same.)

1. Rewrite class Example:

  class Example
    Test::Module.new.doc("Doc...")
  end

Output:
  Test::Module
  Doc...

2. Rewrite class Test:

  class Test
    def getBinding
      Object.module_eval "binding"
    end
  end

Output:

  Module
  Doc...

3. Do the one-argument test first:

  eval(content)
  eval(content, Test.new.getBinding)

Output:
  Module
  Doc...
  Test::Module
  Doc...


None of these methods (except #2, maybe?) are very sound or practical,
but they show what (I think) is going on.


David

-- 
David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web:  http://pirate.shu.edu/~blackdav

In This Thread