[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5706] Re: variable variables

From: "Brian F. Feldman" <green@...>
Date: 2000-10-20 10:06:12 UTC
List: ruby-talk #5706
"Guy N. Hurst" <gnhurst@hurstlinks.com> wrote:
> A similar feature in PHP is extract(), which takes an
> associative array and puts the keys into the symbol table
> with the associaated values as the contents of each newly
> generated variable.

We call an associative array a hash (Hash), btw.

> <?php
> $arr['first']="Who";
> $arr['third']="I don't know"
> extract($arr,EXTR_OVERWRITE)	#-> $first="Who" and $third="I don't know"
> ?>
> 
> This is something I use all the time in PHP.
> 
> I'm not sure how it might work in Ruby since variables are
> not the same between the two...

You're right.  It would be damned trivial if you wanted it for only $global 
variables.  Here's a way for local variables.  Note you can't modify the 
local variables (easily?) when not local.

This is the closest I can come to doing it like PHP does without using 
(ICK!) global variables.  It's actually not that bad... kinda assumes that 
the keys in the hash will be Symbols or Strings, and you must provide the 
name of the hash to the method.

irb(main):102:0> first, third = 1, 3
[1, 3]
irb(main):103:0> x = {"third"=>"I don't know", "first"=>"Who"}
{"third"=>"I don't know", "first"=>"Who"}
irb(main):104:0> class Hash
irb(main):105:1> def extract(var)
irb(main):106:2> var = var.to_s
irb(main):107:2> t = self.collect {|k, n| "#{k} = #{var}[#{k.inspect}]"}
irb(main):108:2> t.join("\n")
irb(main):109:2> end
irb(main):110:1> end
nil
irb(main):111:0> x.extract(:x)
"third = x[\"third\"]\nfirst = x[\"first\"]"
irb(main):112:0> eval x.extract(:x)
"Who"
irb(main):113:0> puts first, third
Who
I don't know
nil



--
 Brian Fundakowski Feldman           \  FreeBSD: The Power to Serve!  /
 green@FreeBSD.org                    `------------------------------'



In This Thread

Prev Next