[#281559] NTLM authentication with httpclient — Jim Clark <diegoslice@...>

I have rewritten my net/http script that I had questions on a couple of

11 messages 2007/12/01

[#281591] question about iterator — Paul Private <paulus4605@...>

dear

15 messages 2007/12/01

[#281603] Identifying a volume as being an iPod — John Joyce <dangerwillrobinsondanger@...>

Does anybody know how to identify a mounted volume as being an iPod ?

21 messages 2007/12/01

[#281612] Why are "Array#push" and "pop" not "push!" and "pop!"? — samppi <rbysamppi@...>

As a novice in Ruby, I love its elegance and consistence; it's now one

30 messages 2007/12/01

[#281653] irb and unix shells — Robert Jones <robertjones21@...>

Can you use irb in place of shells like bash or rc?

21 messages 2007/12/02

[#281779] What are the differences between c++ and Ruby? — "duddilla's" <radhika.duddilla@...>

Hi

13 messages 2007/12/03

[#281810] Everyone's favorite flow control: retry — Charles Oliver Nutter <charles.nutter@...>

Today I was thinking about retry support in JRuby, and figured we've

18 messages 2007/12/03

[#281917] What is the best way to interact with a JDBC database — Venks <venkatesh.mantha@...>

Hi,

14 messages 2007/12/03

[#281965] Rubyisms wanted to shorten code in search program — RichardOnRails <RichardDummyMailbox58407@...>

Hi,

10 messages 2007/12/04

[#282099] Re: Ruby App Distribution — Joe L <superist_joe@...>

I don't see how RubyScript2Exe would work when it's a virtual machine. Would it package the entire virtual machine inside the exe?

12 messages 2007/12/04
[#282102] Re: Ruby App Distribution — "Adam Shelly" <adam.shelly@...> 2007/12/04

On 12/4/07, Joe L <superist_joe@yahoo.com> wrote:

[#282100] I consider this a bug in Ruby... — "Just Another Victim of the Ambient Morality" <ihatespam@...>

I would like to know why the following code doesn't work:

14 messages 2007/12/04

[#282123] Ruby works but not JRuby - when using MySQL Driver — Venks <venkatesh.mantha@...>

Here is the simple Ruby program that works with "Ruby" but gives an

10 messages 2007/12/05

[#282276] Worth an RCR? static_type_check, polymorphic_type_check, quacks_like — John Carter <john.carter@...>

Is there another library like this? I would love it if it were just

17 messages 2007/12/05

[#282277] Capturing STDOUT from a system call (POSIX) into an array — Venks <venkatesh.mantha@...>

What's the best way to capture STDOUT into an Array? I looked at

12 messages 2007/12/05

[#282340] if /hello/ =~line — Peter Loftus <loftuz@...>

Got help with this code earlier its just checking a file for a line

12 messages 2007/12/06

[#282373] function like "function_exits" — Girard Fred <fred.girard@...>

Hi all,

14 messages 2007/12/06

[#282374] regular expression. newbie problem. — Johnathan Smith <stu_09@...>

Hi,

15 messages 2007/12/06
[#282378] Re: regular expression. newbie problem. — Reacher <brandon.g.jones@...> 2007/12/06

On Dec 6, 9:42 am, Johnathan Smith <stu...@hotmail.com> wrote:

[#282413] array iterator that have more arrays that also need iteratio — Raimon Fs <coder@...>

Hello ...

14 messages 2007/12/06
[#282415] Re: array iterator that have more arrays that also need iteratio — Xavier Noria <fxn@...> 2007/12/06

On Dec 6, 2007, at 8:25 PM, Raimon Fs wrote:

[#282447] search-0.0.1 — "ara.t.howard" <ara.t.howard@...>

14 messages 2007/12/06

[#282501] Dynamic local vars — Vasyl Smirnov <vasyl.smirnov@...>

Hi,

14 messages 2007/12/07

[#282605] Word Loop (#149) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

49 messages 2007/12/07

[#282633] Problem with Hash of Arrays — Jimi Damon <jdamon@...>

I am new to Ruby , but I consider this feature to be a bug.

15 messages 2007/12/07

[#282673] ruby certification — dare ruby <martin@...>

Dear friends,

41 messages 2007/12/08
[#282695] Re: ruby certification — "Austin Ziegler" <halostatue@...> 2007/12/08

On 12/8/07, dare ruby <martin@angleritech.com> wrote:

[#282696] Re: ruby certification — John Joyce <dangerwillrobinsondanger@...> 2007/12/08

Oh, come on.

[#282703] Re: ruby certification — Gregory Seidman <gsslist+ruby@...> 2007/12/08

On Sat, Dec 08, 2007 at 11:25:59PM +0900, John Joyce wrote:

[#282762] Re: ruby certification — Jim Clark <diegoslice@...> 2007/12/09

Gregory Seidman wrote:

[#282779] Re: ruby certification — "Austin Ziegler" <halostatue@...> 2007/12/09

On 12/9/07, Jim Clark <diegoslice@gmail.com> wrote:

[#282942] Re: ruby certification — Jim Clark <diegoslice@...> 2007/12/10

Austin Ziegler wrote:

[#282962] Re: ruby certification — "Todd Benson" <caduceass@...> 2007/12/10

On Dec 10, 2007 12:28 PM, Jim Clark <diegoslice@gmail.com> wrote:

[#282971] Re: ruby certification — "Austin Ziegler" <halostatue@...> 2007/12/10

On 12/10/07, Todd Benson <caduceass@gmail.com> wrote:

[#282684] Looking for a new web framework. — "Tim Uckun" <timuckun@...>

I am looking for a web framework designed to handle multiple domains

16 messages 2007/12/08
[#282752] Re: Looking for a new web framework. — "Mikel Lindsaar" <raasdnil@...> 2007/12/09

Go get Mephisto and put it on rails. Can handle multiple domains, with

[#282748] How much would variable declarations in Ruby make you wince? — "Just Another Victim of the Ambient Morality" <ihatespam@...>

So, I had a conversation with a colleague of mine and he brought up a

60 messages 2007/12/09

[#282822] Confirm My Ruby/GUI investigation? — Wesley Rishel <wes.rishel@...>

I have been reviewing the copious old threads (and the various cited web

14 messages 2007/12/09

[#282995] REXml help - Insert newlines into large xml file — Sean Nakasone <seannakasone@...>

Hello, I have a large xml file that does not have any newlines in it. Can

10 messages 2007/12/11

[#283063] While statements in ruby — Mark Mr <pimea.mark@...>

Hi guys, I have a probably simple question. I dont know how to do

13 messages 2007/12/11

[#283079] opposite .nil? — "Andrew Stone" <stonelists@...>

I've looked around, but could not find a method that is the opposite of

16 messages 2007/12/11

[#283128] How To Avoid Ugly Declerations — Michael Boutros <me@...>

Hello! More and more I find myself having to do something like this:

13 messages 2007/12/12

[#283243] Connecting to Outlook 'Saved Items' folder using win32ole — Alex DeCaria <alex.decaria@...>

Can anyone tell me how to connect to the 'Saved Items' folder in Outlook

11 messages 2007/12/12

[#283396] Showing Running Processes in variable — jackster the jackle <contact@...>

I want to capture the list of running processes on my computer. I am to

13 messages 2007/12/13

[#283432] Newbie Question: What is a class for? — Matthias Borgeson <hibridmatthais@...>

Hello all-

11 messages 2007/12/13

[#283446] Third edition of "Programming Ruby" now in beta — Dave Thomas <dave@...>

Ruby 1.9 is just around the corner, so it looks like a good time to =20

10 messages 2007/12/13

[#283530] Programmer Ping-Pong (#150) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

43 messages 2007/12/14
[#283538] Re: [QUIZ] Programmer Ping-Pong (#150) — Paul Irofti <bulibuta@...> 2007/12/14

On 2007-12-14, Ruby Quiz <james@grayproductions.net> wrote:

[#283545] Good Ruby IDE for Debian Linux? — "Steckly, Ron" <rsteckly@...>

Hi all,

19 messages 2007/12/14

[#283574] simple way to turn "foo and bar" to "+foo +bar" — Max Williams <toastkid.williams@...>

I want to add a slightly hacky feature into my boolean mysql search

11 messages 2007/12/14

[#283673] Smallest device to code ruby on? — Casimir P <pikselNOSPAMMi@...>

Whats the smallest gadget you can code (and compile) ruby on?

25 messages 2007/12/15

[#283708] autoindenting ruby — "Martin DeMello" <martindemello@...>

Something most of the "IDE roundup" threads seem to pass over lightly

12 messages 2007/12/15

[#283753] Backslashes in Command Line Arguments — Joseph Pecoraro <joepeck02@...>

In writing a script that takes strings on the command line I have run

13 messages 2007/12/16

[#283811] teams -> members -> users — John Griffiths <indiehead@...>

trying to work this out, giving me a headache,

11 messages 2007/12/16

[#283870] Is there any way to pass further the "hidden" block? — "Chiyuan Zhang" <pluskid@...>

Like this:

13 messages 2007/12/17

[#283917] dividing by two and rounding up — Tom Norian <tomnorian@...>

Hey all...I am hoping for a tip

16 messages 2007/12/17

[#283970] Best compiled language for extending Ruby — Sharkie Landshark <shark.fin.soup@...>

I want to write my core logics in a compiled language for 1) performance

26 messages 2007/12/18

[#284001] String#[] behaviour — DNNX <6aLLIaPuMoB@...>

'asd'[0...10] returns 'asd' while 'asd'[-10..-1] returns nil.

14 messages 2007/12/18

[#284037] New to ruby — bigbrother <Cowboyninja@...>

Hey guys, I'm pretty new to ruby. I've got a question

15 messages 2007/12/18

[#284038] Check if directory exists — Florian Schaf <flo.schaf@...>

hi!

13 messages 2007/12/18

[#284082] Hpricot syntax different from Xpath ? — Celine <xhanrot@...>

Hi all

14 messages 2007/12/18

[#284215] best way to distribute? — Pavel Pvl <pavel989@...>

hi, what is the best way to distribute ruby apps without having the end

23 messages 2007/12/19

[#284268] RubyGems 1.0.0 — Eric Hodel <drbrain@...7.net>

Release 1.0.0 fixes several bugs.

24 messages 2007/12/20
[#284328] Re: [ANN] RubyGems 1.0.0 — Jim Morris <ml@...4net.com> 2007/12/20

After trying to install both from the source and from gem update --system

[#284363] RubyGems 1.0.1 — Eric Hodel <drbrain@...7.net>

= Announce: RubyGems Release 1.0.1

12 messages 2007/12/21

[#284462] Matz says namespaces are too hard to implement - why? — Stefan Rusterholz <apeiros@...>

Short primer: What are namespaces?

40 messages 2007/12/22
[#284478] Re: Matz says namespaces are too hard to implement - why? — Robert Klemme <shortcutter@...> 2007/12/22

On 22.12.2007 04:18, Stefan Rusterholz wrote:

[#284479] Re: Matz says namespaces are too hard to implement - why? — Charles Oliver Nutter <charles.nutter@...> 2007/12/22

Robert Klemme wrote:

[#284486] Re: Matz says namespaces are too hard to implement - why? — Stefan Rusterholz <apeiros@...> 2007/12/22

> Or perhaps, the various implementers will be able to answer this

[#284488] Re: Matz says namespaces are too hard to implement - why? — Charles Oliver Nutter <charles.nutter@...> 2007/12/22

Stefan Rusterholz wrote:

[#284491] Re: Matz says namespaces are too hard to implement - why? — Stefan Rusterholz <apeiros@...> 2007/12/22

Charles Oliver Nutter wrote:

[#284493] Re: Matz says namespaces are too hard to implement - why? — Charles Oliver Nutter <charles.nutter@...> 2007/12/22

Stefan Rusterholz wrote:

[#284494] Re: Matz says namespaces are too hard to implement - why? — Stefan Rusterholz <apeiros@...> 2007/12/22

Charles Oliver Nutter wrote:

[#285031] Re: Matz says namespaces are too hard to implement - why? — "Eivind Eklund" <eeklund@...> 2007/12/27

On Dec 22, 2007 4:22 PM, Charles Oliver Nutter <charles.nutter@sun.com> wrote:

[#285115] Re: Matz says namespaces are too hard to implement - why? — Charles Oliver Nutter <charles.nutter@...> 2007/12/28

Eivind Eklund wrote:

[#284644] C++ Functors and Ruby extensions — "Jason Roelofs" <jameskilton@...>

I wonder if anyone has tried to do what I'm doing and if they've come up

10 messages 2007/12/24

[#284651] Trouble with Readline and Building Ruby 1.9 — "James Herdman" <james.herdman@...>

I'm having a little trouble building Ruby 1.9. I'm building on

14 messages 2007/12/24

[#284720] Ruby 1.9.0 is released — Yukihiro Matsumoto <matz@...>

Hi,

54 messages 2007/12/25
[#284729] Re: Ruby 1.9.0 is released — Rk Ch <rollingwoods@...> 2007/12/25

Great christmas gift! Thanks for guys hard worked.

[#284786] Re: Ruby 1.9.0 is released — Yukihiro Matsumoto <matz@...> 2007/12/26

Hi,

[#284800] Re: Ruby 1.9.0 is released — "Jeremy McAnally" <jeremymcanally@...> 2007/12/26

Could you point out some areas that are in dire need of documentation?

[#284731] OT: Polyglot programming article? — Jay Levitt <jay+news@...>

About three or four months ago, I ran across a great article/blog post

10 messages 2007/12/25

[#284772] qt4 bindings, threads — "daniel 虧erud" <daniel.akerud@...>

I couldn't find a mailinglist for the Qt4 Ruby bindings, so I try here. It

11 messages 2007/12/25

[#284867] Destroying an Object — Ken Awamura <ken.awamura@...>

Suppose I create a new object:

19 messages 2007/12/26

[#284894] Purpose of Ruby 1.9? — "=?ISO-8859-2?Q?Rados=B3aw_Bu=B3at?=" <radek.bulat@...>

First of all I want to thank Matz and Ko1 for yours great work! I

26 messages 2007/12/26
[#284896] Re: Purpose of Ruby 1.9? — "Luiz Vitor Martinez Cardoso" <grabber@...> 2007/12/26

WW91IGFyZSBhc2tpbmcgdmVyeSB1c2VmdWxsIHF1ZXN0aW9ucyEgV2VsbC4uLiB3ZSBuZWVkIHdh

[#284905] Re: Purpose of Ruby 1.9? — "Windham, Kristopher R." <kriswindham@...> 2007/12/26

in the Desktop reference by Matz, printed in 2002,

[#284906] Re: Purpose of Ruby 1.9? — "Rick DeNatale" <rick.denatale@...> 2007/12/26

On Dec 26, 2007 5:39 PM, Windham, Kristopher R. <kriswindham@gmail.com> wrote:

[#284918] convert excel spreadsheet to csv — Junkone <junkone1@...>

is there any library to convert excel file to csv.

12 messages 2007/12/27

[#284923] Re: using reg expr with array.index — MonkeeSage <MonkeeSage@...>

On Dec 26, 4:32 pm, Esmail <ebonak_de...@hotmail.com> wrote:

12 messages 2007/12/27

[#284960] Add Array#first= and Array#last= to std lib — "Robert Klemme" <shortcutter@...>

Hi,

35 messages 2007/12/27

[#284980] about method docs — Santanu <thisissantanu@...>

Hello Everybody,

16 messages 2007/12/27

[#285003] Port Ruby on Rails Application — Snoop1990 Snoop1990 <snoopy1990@...>

Hello,

15 messages 2007/12/27

[#285118] testing for 64-bit environment — Tom Metge <tom@...>

subject says it all- anyone know a way to determine if the host system

12 messages 2007/12/28

[#285223] How to jump over the first line in a file? (newbie) — Mark Toth <mark.toth@...>

I have this code:

14 messages 2007/12/28

[#285294] Using "sort!" in a C extension (1.9 problem) — Andre Nathan <andre@...>

Hello

23 messages 2007/12/29
[#285349] Re: Using "sort!" in a C extension (1.9 problem) — "KUBO Takehiro" <kubo@...> 2007/12/30

Hi,

[#285300] Mr Bones - 1.1.0 — "Tim Pease" <tim.pease@...>

Bones

17 messages 2007/12/29

[#285315] Can Ruby be a keylogger on Win/Mac? — Jay Levitt <jay+news@...>

I know the subject's vague; that's because I don't know what I'm talking

14 messages 2007/12/29

[#285475] Best way to download >1GB files — thefed <fedzor@...>

What is the best way to download files from the internet (HTTP) that

19 messages 2007/12/31

Re: String splitting problem

From: Phrogz <phrogz@...>
Date: 2007-12-15 04:55:02 UTC
List: ruby-talk #283663
On Dec 14, 7:03 am, Saladin Mundi <saladin.mu...@gmx.de> wrote:
> hey guys
>
> I'm trying to split an string (which contains various method calls).
> The result of the splitting of the string should be an array (or
> something like that) which contains a sequence which an interpreter
> would have called the methods.
> Example
>
> class X
>    def test(input)
>      ...
>    end
> end
>
> x.new.test("z.methodx(z.methody(),z.methodz(z.methodx))")
>
> If I pass "z.methodx(z.methody(),z.methodz(z.methodx))" there should be
> afterwards an arry like this:
>
>  [0] -> var1 = z.methody()
>  [1] -> var2 = z.methodx
>  [2] -> var3 = z.methodz(var2)
>  [3] -> z.methodx(var1,var3)
>
> so the call(s on different methods) given by an input string shall be
> extracted into the real execution sequence like an interpreter would
> excecute this string it.

On Dec 14, 7:03 am, Saladin Mundi <saladin.mu...@gmx.de> wrote:
> hey guys
>
> I'm trying to split an string (which contains various method calls).
> The result of the splitting of the string should be an array (or
> something like that) which contains a sequence which an interpreter
> would have called the methods.
> Example
>
> class X
>    def test(input)
>      ...
>    end
> end
>
> x.new.test("z.methodx(z.methody(),z.methodz(z.methodx))")
>
> If I pass "z.methodx(z.methody(),z.methodz(z.methodx))" there should be
> afterwards an arry like this:
>
>  [0] -> var1 = z.methody()
>  [1] -> var2 = z.methodx
>  [2] -> var3 = z.methodz(var2)
>  [3] -> z.methodx(var1,var3)
>
> so the call(s on different methods) given by an input string shall be
> extracted into the real execution sequence like an interpreter would
> excecute this string it.
>
> I hope you can help me with my problem.

Wow, that was harder than I expected. The big issue was parsing nested
commands; I couldn't use regexps, so I had to create a little stack-
based parser. Thanks for the fun challenge.

In summary:

puts
MethodMunger.variable_stack( "z.methodx(z.methody(),z.methodz(z.methodx))" )
#=> var0 = z.methodx()
#=> var1 = z.methody()
#=> var2 = z.methodz( var0 )
#=> z.methodx( var1, var2 )


And now, the code, all unit tested:

# Put MWI in the core! enum_for is retarded!
module Enumerable
  def map_with_index
    idx = -1
    map{ |v| yield v,idx+=1 }
  end
end

module MethodMunger
  require 'strscan'

  #  MethodMunger.parse_method( "z.foo( bar( x ), y )" )
  #  #=>  {
  #  #=>    :name=>"z.foo",
  #  #=>    :args=>[
  #  #=>      {
  #  #=>        :name=>"bar",
  #  #=>        :args=>[
  #  #=>          {:name=>"x"}
  #  #=>        ]
  #  #=>      },
  #  #=>      {:name=>"y"}
  #  #=>    ]
  #  #=>  }
  def self.parse_method( source )
    stack = [ ]
    current_method = nil
    mode = :prepare_method

    scanner = StringScanner.new( source )
    until scanner.eos?
      case mode
        when :prepare_method
          new_method = {}
          current_method = new_method
          mode = :find_content

        when :add_argument
          new_method = {}
          (current_method[:args] ||= []) << new_method
          stack << current_method
          current_method = new_method
          mode = :find_content

        when :find_content
          if chunk = scanner.scan( /[\w.]+/ )
            current_method[ :name ] = chunk

          elsif chunk = scanner.scan( /\(\s*/ )
            mode = :add_argument

          elsif chunk = scanner.scan( /\s*,\s*/ )
            current_method.delete(:args) if current_method[:args] ==
[{}]
            current_method = stack.pop
            mode = :add_argument

          elsif chunk = scanner.scan( /\s*\)/ )
            current_method.delete(:args) if current_method[:args] ==
[{}]
            current_method = stack.pop

          end
      end
    end

    current_method.delete(:args) if current_method[:args] ==
[{}]
    current_method
  end

  def self.variable_stack( source )
    method = parse_method( source )
    variable_stack_from_parse( method )
  end

  private
    def self.variable_stack_from_parse( method )
      if method[:args]
        lines = []
        params = method[:args].map{ |arg|
          var_lines = variable_stack_from_parse( arg )
          arg_close = var_lines.pop
          lines.concat( var_lines )
          arg_close
        }
        total_lines = lines.length
        params.each_with_index{ |var,i|
          lines << "var#{i+total_lines} = #{var}"
        }
        lines << "#{method[:name]}( #{
          params.map_with_index{ |v,i|
            "var#{i + total_lines}"
          }.join(', ')
        } )"
      else
        ["#{method[:name]}()"]
      end
    end
end

puts
MethodMunger.variable_stack( "z.methodx(z.methody(),z.methodz(z.methodx))" )
#=> var0 = z.methodx()
#=> var1 = z.methody()
#=> var2 = z.methodz( var0 )
#=> z.methodx( var1, var2 )

if __FILE__==$0
  require 'test/unit'
  class TestParser < Test::Unit::TestCase
    def testa_no_arguments
      result = MethodMunger.parse_method "z.go( )"
      assert_equal( {
        :name=>"z.go"
      }, result )

      result = MethodMunger.parse_method "z.go()"
      assert_equal( {
        :name=>"z.go"
      }, result )

      result = MethodMunger.parse_method "z.go"
      assert_equal( {
        :name=>"z.go"
      }, result )
    end
    def testb_no_nesting
      result = MethodMunger.parse_method "z.go( x )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          { :name=>"x" }
        ]
      }, result )

      result = MethodMunger.parse_method "z.go( x, y )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          { :name=>"x" },
          { :name=>"y" },
        ]
      }, result )

      result = MethodMunger.parse_method "z.go( w, x, y )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          { :name=>"w" },
          { :name=>"x" },
          { :name=>"y" },
        ]
      }, result )
    end
    def testc_nesting
      result = MethodMunger.parse_method "z.go( x( y ) )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          {
            :name=>"x",
            :args=>[
              { :name=>"y" }
            ]
          },
        ]
      }, result )

      result = MethodMunger.parse_method "z.go( x( y, w ) )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          {
            :name=>"x",
            :args=>[
              { :name=>"y" },
              { :name=>"w" },
            ]
          },
        ]
      }, result )

      result = MethodMunger.parse_method "z.go( foo( bar ),x( y,
w ) )"
      assert_equal( {
        :name=>"z.go",
        :args=>[
          {
            :name=>"foo",
            :args=>[
              { :name=>"bar" },
            ]
          },
          {
            :name=>"x",
            :args=>[
              { :name=>"y" },
              { :name=>"w" },
            ]
          },
        ]
      }, result )

    end
  end
  class TestMunger < Test::Unit::TestCase
    def test_a_no_args
      result = MethodMunger.variable_stack "z.go()"
      assert_equal( ["z.go()"], result )

      result = MethodMunger.variable_stack "z.go( )"
      assert_equal( ["z.go()"], result )

      result = MethodMunger.variable_stack "z.go"
      assert_equal( ["z.go()"], result )
    end
    def test_b_one_arg
      result = MethodMunger.variable_stack "z.go(y.foo)"
      assert_equal( ["var0 = y.foo()","z.go( var0 )"], result )

      result = MethodMunger.variable_stack "z.go( y.foo( ) )"
      assert_equal( ["var0 = y.foo()","z.go( var0 )"], result )
    end
    def test_c_multi_args
      result = MethodMunger.variable_stack "z.go(y.foo,x.bar)"
      assert_equal( [
        "var0 = y.foo()",
        "var1 = x.bar()",
        "z.go( var0, var1 )"
      ], result )

      result = MethodMunger.variable_stack "z.go( y.foo(), x.bar() )"
      assert_equal( [
        "var0 = y.foo()",
        "var1 = x.bar()",
        "z.go( var0, var1 )"
      ], result )
    end
    def test_d_nest_singles
      result = MethodMunger.variable_stack "z.go( y.foo( x.bar ) )"
      assert_equal( [
        "var0 = x.bar()",
        "var1 = y.foo( var0 )",
        "z.go( var1 )"
      ], result )

      result = MethodMunger.variable_stack
"z.go( y.foo( x.bar( w.jim ) ) )"
      assert_equal( [
        "var0 = w.jim()",
        "var1 = x.bar( var0 )",
        "var2 = y.foo( var1 )",
        "z.go( var2 )"
      ], result )
    end
    def test_e_nest_more
      result = MethodMunger.variable_stack "z.go( y.foo( x.bar,
w.jim ) )"
      assert_equal( [
        "var0 = x.bar()",
        "var1 = w.jim()",
        "var2 = y.foo( var0, var1 )",
        "z.go( var2 )"
      ], result )
    end
  end
end




In This Thread