[#300221] How about the execution efficiency in Ruby 1.9? — Erwin Moller <hi.steven.tu@...>

Has It been greatly improved?

12 messages 2008/05/01

[#300267] splitting with a regex & keeping a ref? — "Kyle Schmitt" <kyleaschmitt@...>

I'm writing some scripts to help handle some ornery samba servers we

13 messages 2008/05/01

[#300280] Please explain nuances of ||= — Ruby Freak <twscannell@...>

I am reading some of the ruby files in rails and I an seeing the ||=

28 messages 2008/05/01
[#300305] Re: Please explain nuances of ||= — Simon Krahnke <overlord@...> 2008/05/01

* David A. Black <dblack@rubypal.com> (18:56) schrieb:

[#300312] Re: Please explain nuances of ||= — "David A. Black" <dblack@...> 2008/05/01

Hi --

[#300317] Re: Please explain nuances of ||= — Phillip Gawlowski <cmdjackryan@...> 2008/05/01

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

[#300308] Is there some way to execute a block within an arbitrary lexical scope? — Ruby Talk <rubytalk@...>

Is there some way to execute a block within a certain lexical scope?

10 messages 2008/05/01

[#300384] Extracting a value from an array — Albert Schlef <albertschlef@...>

I have the following array:

18 messages 2008/05/02

[#300431] Reverse Divisible Numbers (#161) — Matthew Moss <matthew.moss@...>

This is a fairly simple quiz this week, as I'm in the middle of

35 messages 2008/05/02

[#300437] Ruby 1.9 wishlist — coderrr <coderrr.contact@...>

Hey I just put together a list of stuff I totally wish Ruby had and I

16 messages 2008/05/02

[#300545] Why there is not "replace" method for Fixnum? — Iñaki Baz Castillo <ibc@...>

Hi, using String#replace I can "simulate" a pointer (thanks to David A. for=

10 messages 2008/05/03

[#300569] Different Ways To Loop — Wyatt Greene <greenewm@...>

I love the flexibility of Ruby. It gives you several ways to do

19 messages 2008/05/04

[#300648] How would you design regexps in the integer domain? — Andreas Launila <ruby-talk@...>

I'm trying to come up with a clean way to specify regexps in the integer

13 messages 2008/05/05

[#300751] Ruby has to be interpreted line by line in runtime, does this affect Ruby's execution efficiency badly? — Erwin Moller <hi.steven.tu@...>

Why doesn't the inventor design a better approach to avoid this

8 messages 2008/05/06

[#300752] In order to cross platform, Ruby is designed to be interpreted in runtime, so Ruby code is exposed on the server. This brings a security danger which is not acceptable. — Erwin Moller <hi.steven.tu@...>

How about PHP? I think the same problem with PHP.

10 messages 2008/05/06
[#300755] Re: In order to cross platform, Ruby is designed to be interpreted in runtime, so Ruby code is exposed on the server. This brings a security danger which is not acceptable. — Phillip Gawlowski <cmdjackryan@...> 2008/05/06

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

[#300860] Re: In order to cross platform, Ruby is designed to be interpreted in runtime, so Ruby code is exposed on the server. This brings a security danger which is not acceptable. — Clifford Heath <no@...> 2008/05/07

Phillip Gawlowski wrote:

[#300862] Re: In order to cross platform, Ruby is designed to be interpreted in runtime, so Ruby code is exposed on the server. This brings a security danger which is not acceptable. — Phillip Gawlowski <cmdjackryan@...> 2008/05/07

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

[#300767] Reading from file, create a class with variables — Pelle Strul <aardtwig@...>

Hi, I'm trying to load a file with specifications like:

11 messages 2008/05/06

[#300834] Where to put code for extending a class? — Zoop Zoop <manuel.meurer@...>

I want to extend the String class with a capitalize_each_word method

31 messages 2008/05/06
[#300839] Re: Where to put code for extending a class? — "Robert Dober" <robert.dober@...> 2008/05/06

On Tue, May 6, 2008 at 10:47 PM, Zoop Zoop <manuel.meurer@gmail.com> wrote:

[#300859] Re: Where to put code for extending a class? — Zoop Zoop <manuel.meurer@...> 2008/05/07

Robert, could you explain a bit more what you mean?

[#300864] Re: Where to put code for extending a class? — Phillip Gawlowski <cmdjackryan@...> 2008/05/07

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

[#300893] Re: Where to put code for extending a class? — "David A. Black" <dblack@...> 2008/05/07

Hi --

[#300919] Word for monkeypatching — Brian Marick <marick@...> 2008/05/07

[#300835] get method in Array subclass: where's it defined? — RichardOnRails <RichardDummyMailbox58407@...>

Hi,

10 messages 2008/05/06

[#300900] Posting Culture — "Robert Klemme" <shortcutter@...>

All,

22 messages 2008/05/07

[#300951] Check if char in string? — globalrev <skanemupp@...>

how do i do this:

31 messages 2008/05/07

[#300967] hash adding values — Tim Wolak <tim.wolak@...>

I'm trying to insert account numbers into a hash and add the balances

18 messages 2008/05/07
[#300972] Re: hash adding values — Sebastian Hungerecker <sepp2k@...> 2008/05/07

Tim Wolak wrote:

[#300973] Re: hash adding values — Tim Wolak <tim.wolak@...> 2008/05/07

Sebastian Hungerecker wrote:

[#300975] Re: hash adding values — "Craig Demyanovich" <cdemyanovich@...> 2008/05/07

Oh, you want to store the balances based on the acct. #, then you want to

[#301029] "Real" Differences Between Python & Ruby — Max Cantor <maxcantor@...>

I have a question about the difference(s) between Python and Ruby. I

20 messages 2008/05/08
[#301197] Re: "Real" Differences Between Python & Ruby — globalrev <skanemupp@...> 2008/05/08

On 8 Maj, 04:09, Phlip <phlip2...@gmail.com> wrote:

[#301296] Re: "Real" Differences Between Python & Ruby — Marc Heiler <shevegen@...> 2008/05/09

I was about to comment on something but when i read this:

[#301305] Re: "Real" Differences Between Python & Ruby — "Max Cantor" <maxcantor@...> 2008/05/09

On Fri, May 9, 2008 at 12:23 PM, Marc Heiler <shevegen@linuxmail.org> wrote:

[#301101] Why can't I redefine "<<" method to allow two parameters? — "Iñaki Baz Castillo" <ibc@...>

SGksIHZlcnkgZXhydGFuZ2U6CgoKY2xhc3MgTXlBcnJheSA8IEFycmF5CiAgYWxpYXMgb3JpZ2lu

14 messages 2008/05/08

[#301129] Comparing String with Symbol — "Iñaki Baz Castillo" <ibc@...>

SGksIGxvc3RzIG9mIFJ1YnkgbWV0aG9kcyBhbGxvdyBTdHJpbmcgb3IgU3ltYm9sIGFzIHBhcmFt

16 messages 2008/05/08

[#301204] Doing an AND in regexp char class — "Todd Benson" <caduceass@...>

This question arises out of a couple of recent threads and may or may

18 messages 2008/05/08
[#301216] Re: Doing an AND in regexp char class — "ara.t.howard" <ara.t.howard@...> 2008/05/08

[#301219] Re: Doing an AND in regexp char class — "Todd Benson" <caduceass@...> 2008/05/08

On Thu, May 8, 2008 at 6:07 PM, ara.t.howard <ara.t.howard@gmail.com> wrote:

[#301278] Delete every other value in an array — Tim Conner <crofty_james@...>

What is the best way to delete every other value in a ruby array?

18 messages 2008/05/09

[#301293] The Turing Machine (#162) — Matthew Moss <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

29 messages 2008/05/09

[#301439] IO#putc writing 2 bytes? — Minic Minic <cg1161@...>

Hey all, thanks for reading. Today is my first attempt at getting some

12 messages 2008/05/11

[#301525] Convert integer to array? — Nadim Kobeissi <kaepora@...>

Let's say I have:

18 messages 2008/05/12

[#301528] Handling of arrays — Clement Ow <clement.ow@...>

A snippet of my code are as follows:

15 messages 2008/05/12
[#301542] Re: Handling of arrays — "Jes俍 Gabriel y Gal疣" <jgabrielygalan@...> 2008/05/12

On Mon, May 12, 2008 at 11:00 AM, Clement Ow

[#301602] Re: Handling of arrays — Clement Ow <clement.ow@...> 2008/05/13

Jes炭s Gabriel y Gal叩n wrote:

[#301611] Re: Handling of arrays — "Jes俍 Gabriel y Gal疣" <jgabrielygalan@...> 2008/05/13

On Tue, May 13, 2008 at 5:22 AM, Clement Ow

[#301719] Re: Handling of arrays — Clement Ow <clement.ow@...> 2008/05/14

Jes炭s Gabriel y Gal叩n wrote:

[#301623] How to convert character to hexadecimal? — "Iñaki Baz Castillo" <ibc@...>

SGksIEkgd2FudCB0byBjb252ZXJ0IHNvbWUgY2hhcmFjdGVyZXMgdG8gaGV4YWRlY2ltYWw6Cgog

21 messages 2008/05/13
[#301639] Re: How to convert character to hexadecimal? — Chris Hulan <chris.hulan@...> 2008/05/13

On May 13, 9:57 am, I=F1aki Baz Castillo <i...@aliax.net> wrote:

[#301842] 40 million levenshtein distances for two long strings — John <john.d.perkins@...>

I am trying to discover similar files to reduce redundancy on a large

12 messages 2008/05/15

[#301848] 7 Ruby Programming ebook — Laurynn <surejaya@...>

Found this on free ebook site.

44 messages 2008/05/15
[#302032] Re: 7 Ruby Programming ebook — Phillip Gawlowski <cmdjackryan@...> 2008/05/16

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

[#302612] Re: 7 Ruby Programming ebook — Camilo <camilor@...> 2008/05/22

Pablo

[#301898] What is the bes Ruby's book for beginners? — Renato Veneroso <rveneroso@...>

Hi everybody,

20 messages 2008/05/15

[#301937] Matz: can we have rescue/else/ensure available in all blocks? — coderrr <coderrr.contact@...>

Hi Matz,

12 messages 2008/05/15

[#301992] Obfuscated Email — "Matthew Moss" <matthew.moss@...>

_If you want to ignore the introduction and just get to the task, skip down

44 messages 2008/05/16

[#302028] Monkey Patching (definition)? — Christoph Schiessl <c.schiessl@...>

For example. Look the following piece of simple Ruby Code:

12 messages 2008/05/16

[#302034] Not quite getting it. — Roger Alsing <roger.alsing@...>

Hi,

27 messages 2008/05/16
[#302079] Re: Not quite getting it. — "ara.t.howard" <ara.t.howard@...> 2008/05/16

[#302092] Re: Not quite getting it. — Florian Gilcher <flo@...> 2008/05/17

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

[#302109] Re: Not quite getting it. — Roger Alsing <roger.alsing@...> 2008/05/17

> class Test

[#302064] ruby 1.9 hates you and me and the encodings we rode in on so just get used to it. — DJ Jazzy Linefeed <john.d.perkins@...>

def prep_file(path)

29 messages 2008/05/16
[#353767] Re: ruby 1.9 hates you and me and the encodings we rode in on so just get used to it. — Brian Candler <b.candler@...> 2009/12/27

DJ Jazzy Linefeed wrote:

[#353868] Re: ruby 1.9 hates you and me and the encodings we rode in on so just get used to it. — Bill Kelly <billk@...> 2009/12/29

Brian Candler wrote:

[#302093] Object#select and method_missing — Bob Aman <bob@...>

class SelectTest

14 messages 2008/05/17

[#302112] Dude? — "Robert Dober" <robert.dober@...>

Dear native speakers

39 messages 2008/05/17

[#302348] Why doesn't Float() work the same as Integer()? — "Michael W. Ryder" <_mwryder@...>

In my continuing work learning Ruby while creating a Rational class I

26 messages 2008/05/19
[#302373] Re: Why doesn't Float() work the same as Integer()? — "Eric I." <rubytraining@...> 2008/05/20

On May 19, 7:44=A0pm, "Michael W. Ryder" <_mwry...@worldnet.att.net>

[#302500] Re: Why doesn't Float() work the same as Integer()? — Yukihiro Matsumoto <matz@...> 2008/05/21

Hi,

[#302412] Is Necessary for all rails employee know computer knowledge? — Michel Thapa <abcotech@...>

Hi all Is Necessary for all rails employee know computer knowledge?

15 messages 2008/05/20
[#302414] Re: Is Necessary for all rails employee know computer knowledge? — pjb@... (Pascal J. Bourguignon) 2008/05/20

Michel Thapa <abcotech@gmail.com> writes:

[#302431] Re: Is Necessary for all rails employee know computer knowledge? — Eleanor McHugh <eleanor@...> 2008/05/20

On 20 May 2008, at 13:15, Pascal J. Bourguignon wrote:

[#302477] Is there any good source for the logic behind some of the methods? — "Michael W. Ryder" <_mwryder@...>

I am trying to figure out why methods that seem to do the same thing

11 messages 2008/05/21

[#302489] Ensuring only one instance of a script is running — Daniel Berger <djberg96@...>

Hi all,

14 messages 2008/05/21

[#302565] Prevent ruby constant variables from changing? — George Wang <stdcells@...>

Hi,

36 messages 2008/05/22
[#302599] Re: Prevent ruby constant variables from changing? — Dave Bass <davebass@...> 2008/05/22

George Wang wrote:

[#302601] Re: Prevent ruby constant variables from changing? — Florian Gilcher <flo@...> 2008/05/22

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

[#302583] Re: Prevent ruby constant variables from changing? — Peña, Botp <botp@...> 2008/05/22

RnJvbTogR2VvcmdlIFdhbmcgW21haWx0bzpzdGRjZWxsc0B5YWhvby5jb21dIA0KIyBJcyB0aGVy

[#302604] Is rdoc (http://www.ruby-doc.org/core/) complete? — "Victor Reyes" <victor.reyes@...>

Hello Team,

10 messages 2008/05/22

[#302632] OOP in Ruby? — aidy <aidy.lewis@...>

Hi,

39 messages 2008/05/22
[#303006] Re: OOP in Ruby? — aidy <aidy.lewis@...> 2008/05/27

On May 26, 3:59 pm, luka luka <dezer...@posta.ge> wrote:

[#303023] Re: OOP in Ruby? — Huw Collingbourne <huw@...> 2008/05/27

aidy wrote:

[#303027] Re: OOP in Ruby? — "Robert Dober" <robert.dober@...> 2008/05/27

On Tue, May 27, 2008 at 2:20 PM, Huw Collingbourne <huw@darkneon.com> wrote:

[#302769] #plural? or #singular? — Mark Dodwell <seo@...>

Does anybody know an easy way to test if a word is singular or plural --

21 messages 2008/05/23
[#302807] Re: #plural? or #singular? — Dave Bass <davebass@...> 2008/05/24

There are lots of difficulties here.

[#302809] Re: #plural? or #singular? — "Robert Dober" <robert.dober@...> 2008/05/24

On Sat, May 24, 2008 at 5:08 PM, Dave Bass <davebass@musician.org> wrote:

[#302812] Re: #plural? or #singular? — "Axel Etzold" <AEtzold@...> 2008/05/24

[#302876] A simple newbie question (arrays and strings) — koichirose <koi@...>

Today I started programming in ruby.

13 messages 2008/05/25

[#302894] briefest method of generating a list of random numbers? — Boris Schmid <boris@...>

Hi all,

11 messages 2008/05/26

[#302911] Why "ABCDE"[0] returns an integer instead of 'A' ? — "Iñaki Baz Castillo" <ibc@...>

SGksIEkgY2Fubm90IHVuZGVyc3RhbmQgaG93IGEgaGlnaCBsZXZlbCBsYW5ndWFnZSBhcyBSdWJ5

12 messages 2008/05/26

[#303002] documentation for ruby? — notnorwegian@...

i think the documentation at http://www.ruby-doc.org/ is fairly

63 messages 2008/05/27
[#303021] Re: documentation for ruby? — Ron Fox <fox@...> 2008/05/27

What sort of documentation are you looking for reference? tutorial?

[#303028] Re: documentation for ruby? — "James Bracy" <waratuman86@...> 2008/05/27

I find ruby-doc to be great. But if you are looking for a tutorial, it

[#303032] Re: documentation for ruby? — "Robert Dober" <robert.dober@...> 2008/05/27

On Tue, May 27, 2008 at 2:58 PM, James Bracy <waratuman86@gmail.com> wrote:

[#303034] Re: documentation for ruby? — Mark Wilden <mark@...> 2008/05/27

On May 27, 2008, at 7:03 AM, Robert Dober wrote:

[#303037] Re: documentation for ruby? — "Victor Reyes" <victor.reyes@...> 2008/05/27

What's top or bottom posting anyway?

[#303039] Re: documentation for ruby? — "Todd Benson" <caduceass@...> 2008/05/27

This is top posting.

[#303046] Re: documentation for ruby? — Mark Wilden <mark@...> 2008/05/27

On May 27, 2008, at 7:39 AM, Todd Benson wrote:

[#303064] Re: documentation for ruby? — "Todd Benson" <caduceass@...> 2008/05/27

On Tue, May 27, 2008 at 9:53 AM, Mark Wilden <mark@mwilden.com> wrote:

[#303066] Re: documentation for ruby? — Phillip Gawlowski <cmdjackryan@...> 2008/05/27

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

[#303075] Re: Top-posting — Mark Wilden <mark@...> 2008/05/27

[#303077] Re: Top-posting — "Avdi Grimm" <avdi@...> 2008/05/27

My personal opinion:

[#303014] Directionality of comparasion operators — Tobias Weber <towb@...>

Hi,

11 messages 2008/05/27

[#303150] The duck's backside — Tobias Weber <towb@...>

Hi,

75 messages 2008/05/28
[#303179] Re: The duck's backside — Tobias Weber <towb@...> 2008/05/28

In article

[#303202] Re: The duck's backside — Eleanor McHugh <eleanor@...> 2008/05/28

[#303215] Re: The duck's backside — Mark Wilden <mark@...> 2008/05/28

[#303224] Re: The duck's backside — Eleanor McHugh <eleanor@...> 2008/05/28

On 28 May 2008, at 18:57, Mark Wilden wrote:

[#303236] Re: The duck's backside — Mark Wilden <mark@...> 2008/05/28

On May 28, 2008, at 11:45 AM, Eleanor McHugh wrote:

[#303240] Re: The duck's backside — David Masover <ninja@...> 2008/05/28

On Wednesday 28 May 2008 15:09:23 Mark Wilden wrote:

[#303255] Re: The duck's backside — Mark Wilden <mark@...> 2008/05/28

On May 28, 2008, at 1:44 PM, David Masover wrote:

[#303289] Re: The duck's backside — "Avdi Grimm" <avdi@...> 2008/05/29

On Wed, May 28, 2008 at 6:23 PM, Mark Wilden <mark@mwilden.com> wrote:

[#303296] Re: The duck's backside — Mark Wilden <mark@...> 2008/05/29

On May 28, 2008, at 8:59 PM, Avdi Grimm wrote:

[#303322] Re: The duck's backside — "David A. Black" <dblack@...> 2008/05/29

Hi --

[#303315] Re: The duck's backside — David Masover <ninja@...> 2008/05/29

On Thursday 29 May 2008 00:59:42 Mark Wilden wrote:

[#303170] Should I Learn Ruby as a First Language? — MRH <mauriceroman@...>

Hello Group,

64 messages 2008/05/28
[#303176] Re: Should I Learn Ruby as a First Language? — Tobias Weber <towb@...> 2008/05/28

In article

[#303183] Re: Should I Learn Ruby as a First Language? — Mark Wilden <mark@...> 2008/05/28

On May 28, 2008, at 6:01 AM, Tobias Weber wrote:

[#303222] Re: Should I Learn Ruby as a First Language? — "Kyle Schmitt" <kyleaschmitt@...> 2008/05/28

Since nobody's posted it...

[#303234] Re: Should I Learn Ruby as a First Language? — Mark Wilden <mark@...> 2008/05/28

On May 28, 2008, at 11:36 AM, Kyle Schmitt wrote:

[#303174] Merge collections of objects — John Butler <johnnybutler7@...>

Hi,

12 messages 2008/05/28

[#303253] DRb Problems with Mac OS X 10.5.3 — Kurt Schrader <kschrader@...>

It looks like the Mac OS X 10.5.3 upgrade breaks DRb when it's trying to

22 messages 2008/05/28
[#303265] Re: DRb Problems with Mac OS X 10.5.3 — Eric Ly <eric@...> 2008/05/28

I'm running into the same problem too having just upgraded. Is there a

[#303268] Re: DRb Problems with Mac OS X 10.5.3 — Kurt Schrader <kschrader@...> 2008/05/29

No solution yet, but it looks like something has changed in some

[#303293] Re: DRb Problems with Mac OS X 10.5.3 — Andy Keep <akeep@...> 2008/05/29

I've not done too much Ruby socket programming, but it seems to be that

[#303297] Re: DRb Problems with Mac OS X 10.5.3 — "Laurent Sansonetti" <laurent.sansonetti@...> 2008/05/29

Thanks for the report, we are of course very sorry about that. Ruby

[#303362] Surprising Extend — "Leslie Viljoen" <leslieviljoen@...>

Hi people

13 messages 2008/05/29

[#303398] Gems not working — Jim Hoskins <jimh@...>

I am currently not able to install any gems. I was using Gem 1.1.1 but

17 messages 2008/05/29

[#303434] How do i replace actual value in the query with variables? — Ting Chang <aumart@...>

I try to set up a loop to put the data in the array into the oracle

11 messages 2008/05/29

[#303519] getting standard error and output from ruby script in real time — Stefano Crocco <stefano.crocco@...>

I'm trying to write an editor for ruby in ruby using the KDE4 bindings for

10 messages 2008/05/30

[#303571] splitting help needed — Zoe Phoenix <dark_sgtphoenix@...>

I have a program that someone on this forum helped me fix before that

19 messages 2008/05/30
[#303573] Re: splitting help needed — Siep Korteling <s.korteling@...> 2008/05/30

Zoe Phoenix wrote:

[#303576] Price Ranges (#164) — "Matthew Moss" <matthew.moss@...>

Apologies for the late quiz... been rather busy today. Here's another simple

16 messages 2008/05/31

Re: [QUIZ] The Turing Machine (#162)

From: Mike Stok <mike@...>
Date: 2008-05-11 22:52:44 UTC
List: ruby-talk #301502
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thanks for the fun quiz. For fun I over-egged the solution:

tape.rb:

# Turing machine tape.
class Tape

   def initialize(string='')
     @string = string.length.zero? ? '_' : string.dup
     @offset = 0
   end

   def read
     return @string[@offset].chr
   end

   def write(one_char_string)
     @string[@offset] = one_char_string[0]
     return
   end

   def move_head_left
     if @offset == 0
       @string.insert(0, '_')
     else
       @offset -= 1
     end
     return
   end

   def move_head_right
     @offset += 1
     if @offset == @string.length
       @string.insert(-1, '_')
     end
     return
   end

   def content
     return @string.dup
   end

   attr_reader :offset
end

turing.rb:

class Turing
   def initialize(lines)
     @action, @initial_state = load(lines)
   end

   def run(tape)
     state = @initial_state
     while action = @action[state][tape.read]
       state = do_action(tape, state, *action)
     end
   end

   def do_action(tape, current_state, next_state, write, move)
     tape.write(write)
     case move
     when "L" then tape.move_head_left
     when "R" then tape.move_head_right
     end
     return next_state
   end

   def load(lines)
     action = Hash.new { |h,k| h[k] = {} }
     initial_state = parse(lines) do |current_state, read, next_state,  
write, move|
       action[current_state][read] = [next_state, write, move]
     end

     return action, initial_state
   end

   # Make sure that the lines we are loading are all valid.  Raise a  
runtime error
   # if we suspect that garbage is being passed in.  As each line is  
parsed we yield
   # the validated information.  The return value is the first  
current_state mentioned
   # in the lines passed in.
   #
   # The spec of the quiz maps neatly to a regex, so we'll go with the
   # terse "parsing" and generic error message (we could keep track of  
line
   # number in future if we wanted to be helpful)

   def parse(lines)
     initial_state = nil
     lines.each_line do |line|
       # deal with comments and blank lines
       instructions = line.sub(/\s*#.*/, '')
       next if instructions =~ /^\s*$/

       unless instructions =~ /^ \s* (\w+) # current state => $1
                                 \s+ (\w)  # read char => $2
                                 \s+ (\w+) # next state => $3
                                 \s+ (\w)  # char to write => $4
                                 \s+ (L|R) # tape head move direction  
=> $5
                                 \s* $
                              /x
         raise RuntimeError, "bad line '#{line}'"
       end

       current_state, read, next_state, write, move = $1, $2, $3, $4, $5
       initial_state ||= current_state;
       yield current_state, read, next_state, write, move
     end

     return initial_state
   end
end

Having Turing::run call Turing::do_action let me play with  
Console::ANSICode for fun:

tm.rb:

#!/usr/bin/env ruby
#
# Ruby quiz 162
#
# usage:
#
# tm.rb [-d] program_file tape1 [tape2 [...]]

require 'turing'
require 'tape'

class DisplayTuring < Turing
   require 'rubygems'
   require 'facets/ansicode'
   include Console::ANSICode
   def do_action(tape, current_state, next_state, write, move)
     content = tape.content
     offset = tape.offset
     puts blue{ current_state } + "\t" +
         blue{ content[0, offset]      || '' } +
         black{ on_cyan { content[offset, 1]      || '' } }  +
         blue{ content[offset+1 .. -1] || '' }
     super
   end
end

machine_type = Turing
if ARGV.length > 0 && ARGV[0] == '-d'
   machine_type = DisplayTuring
   ARGV.shift
end

if ARGV.length < 2
   raise RuntimeError, "bad args on command line"
end

t = machine_type.new(File.open(ARGV.shift))
ARGV.each do |tape_content|
   tape = Tape.new(tape_content)
   t.run(tape)
   puts tape.content.tr('_', ' ').strip
end


- --

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.




-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAkgneKsACgkQnsTBwAWZE9qfPgCeJ+jNl2Rk9baHPSfAqvOZJ3Ih
R3EAniCupYipgp9OtejcQ/b+ddBfG3ND
=pA5K
-----END PGP SIGNATURE-----

In This Thread