[#246252] How to use standard library? — Jamal Soueidan <jkhaledsoueidan@...>

Hello,

18 messages 2007/04/01
[#246253] Re: How to use standard library? — Stefano Crocco <stefano.crocco@...> 2007/04/01

Alle domenica 1 aprile 2007, Jamal Soueidan ha scritto:

[#246263] Re: How to use standard library? — "Yamal Soueidan" <jkhaledsoueidan@...> 2007/04/01

Well, where does it identify its module and not a class?

[#246267] Re: How to use standard library? — Stefano Crocco <stefano.crocco@...> 2007/04/01

Alle domenica 1 aprile 2007, Yamal Soueidan ha scritto:

[#246368] Map Or Collect Redux — "RubyTalk@..." <rubytalk@...>

Looking in the old archives of ruby-talk I found a thread in 2005

11 messages 2007/04/02

[#246378] Test::Unit Reports — aidy.lewis@...

Hi,

23 messages 2007/04/02

[#246464] Last iteration condition — "Mike" <michaelst@...>

Hi,

14 messages 2007/04/03

[#246590] Everything is a object? — Jamal Soueidan <jkhaledsoueidan@...>

Hello,

40 messages 2007/04/03
[#246598] Re: Everything is a object? — Jamal Soueidan <jkhaledsoueidan@...> 2007/04/04

Jamal Soueidan wrote:

[#246600] Re: Everything is a object? — Gary Wright <gwtmp01@...> 2007/04/04

[#246601] Re: Everything is a object? — Jamal Soueidan <jkhaledsoueidan@...> 2007/04/04

Gary Wright wrote:

[#246614] fast XML parser, other than libxml — Peter Szinek <peter@...>

Hello all,

20 messages 2007/04/04
[#246615] Re: fast XML parser, other than libxml — "Keith Fahlgren" <keith@...> 2007/04/04

On 4/3/07, Peter Szinek <peter@rubyrailways.com> wrote:

[#246626] Re: fast XML parser, other than libxml — Peter Szinek <peter@...> 2007/04/04

Keith Fahlgren wrote:

[#246629] Re: fast XML parser, other than libxml — Robert Klemme <shortcutter@...> 2007/04/04

On 04.04.2007 10:53, Peter Szinek wrote:

[#246630] Re: fast XML parser, other than libxml — Peter Szinek <peter@...> 2007/04/04

Robert Klemme wrote:

[#246669] Problem Extracting Array Values — Dustin Anderson <rubyforum@...>

Hi All,

16 messages 2007/04/04
[#246672] Re: Problem Extracting Array Values — "ChrisH" <chris.hulan@...> 2007/04/04

On Apr 4, 10:02 am, Dustin Anderson <rubyfo...@dustinanderson.com>

[#246673] Re: Problem Extracting Array Values — "Ryan Leavengood" <leavengood@...> 2007/04/04

On 4/4/07, ChrisH <chris.hulan@gmail.com> wrote:

[#246679] Re: Problem Extracting Array Values — Dustin Anderson <rubyforum@...> 2007/04/04

[#246702] nil? and non-existent objects — "François Montel" <zerohalo@...>

Why is it that the nil? method can sometimes be called on an object that

12 messages 2007/04/04

[#246830] Redefining initialize while staying -w clean — "Daniel Berger" <djberg96@...>

Hi all,

11 messages 2007/04/05

[#246929] Getting to 100 (#119) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

57 messages 2007/04/06
[#247191] Re: Getting to 100 (#119) — "Carl Porth" <badcarl@...> 2007/04/08

here is my first pass:

[#247192] Re: Getting to 100 (#119) — "Carl Porth" <badcarl@...> 2007/04/08

After going back and reading the current solutions, I like Ken Bloom's

[#247215] Re: Getting to 100 (#119) — "Marcel Ward" <wardies@...> 2007/04/09

On 08/04/07, Carl Porth <badcarl@gmail.com> wrote:

[#246946] A few beginners questions — wannaberor <amldcc@...>

Guys,

15 messages 2007/04/06

[#247059] Question to all you newbies (others welcome) — SonOfLilit <sonoflilit@...>

Hello everyone,

40 messages 2007/04/07
[#247078] Re: Question to all you newbies (others welcome) — Michael Brooks <michael.brooks@...> 2007/04/07

SonOfLilit wrote:

[#247097] Re: Question to all you newbies (others welcome) — "ChrisKaelin" <ck.stonedragon@...> 2007/04/07

I totally agree, what people say about a single-entry-point: ruby-

[#247099] Re: Question to all you newbies (others welcome) — James Britt <james.britt@...> 2007/04/07

ChrisKaelin wrote:

[#247100] Re: Question to all you newbies (others welcome) — "Jeff" <cohen.jeff@...> 2007/04/07

On Apr 7, 4:30 pm, James Britt <james.br...@gmail.com> wrote:

[#247131] Minimum ruby installation. — "bino_oetomo" <bino@...> 2007/04/08

Dear Experts.

[#247151] Re: Minimum ruby installation. — Alex Young <alex@...> 2007/04/08

bino_oetomo wrote:

[#247062] rb_yield(), break, and C extensions — "Noah Easterly" <noah.easterly@...>

So, I'm working on a C extension.

11 messages 2007/04/07

[#247088] Trying to GET google with socket....problem — Hey You <r3madi@...>

Well I don't know why the socket can't connect to Google. Here is my

17 messages 2007/04/07

[#247155] code blocks and methods — andy <eps@...>

Hi,

13 messages 2007/04/08

[#247299] Infinate Loop - Please Advise — "Merrie" <merries@...>

This program produces an infinate loop. I am learning from Learn to =

13 messages 2007/04/09

[#247338] How to Write a Spelling Corrector — Brian Adkins <lojicdotcomNOSPAM@...>

Peter Norvig wrote a simple spelling corrector in 20 lines of Python 2.5,

12 messages 2007/04/10

[#247391] Slow ruby regexes — Emmanuel <emmanuel@...>

Hello i've been reading this article, wich has a few benchmarks

47 messages 2007/04/10
[#247402] Re: Slow ruby regexes — SonOfLilit <sonoflilit@...> 2007/04/10

Read wikipedia on Regex. It explains better than I can why one is used

[#247403] Re: Slow ruby regexes — MenTaLguY <mental@...> 2007/04/10

On Wed, 11 Apr 2007 02:59:29 +0900, SonOfLilit <sonoflilit@gmail.com> wrote:

[#247409] Re: Slow ruby regexes — "Robert Dober" <robert.dober@...> 2007/04/10

On 4/10/07, MenTaLguY <mental@rydia.net> wrote:

[#247410] Re: Slow ruby regexes — MenTaLguY <mental@...> 2007/04/10

On Wed, 11 Apr 2007 03:56:28 +0900, "Robert Dober" <robert.dober@gmail.com> wrote:

[#247455] Re: Slow ruby regexes — "Robert Dober" <robert.dober@...> 2007/04/11

On 4/10/07, MenTaLguY <mental@rydia.net> wrote:

[#247456] Re: Slow ruby regexes — "Robert Dober" <robert.dober@...> 2007/04/11

oops wrong button here :(

[#247499] Re: Slow ruby regexes — MenTaLguY <mental@...> 2007/04/11

On Wed, 11 Apr 2007 16:53:26 +0900, "Robert Dober" <robert.dober@gmail.com> wrote:

[#247518] Re: Slow ruby regexes — "Robert Dober" <robert.dober@...> 2007/04/11

On 4/11/07, MenTaLguY <mental@rydia.net> wrote:

[#247541] Re: Slow ruby regexes — MenTaLguY <mental@...> 2007/04/11

On Thu, 12 Apr 2007 03:27:04 +0900, "Robert Dober" <robert.dober@gmail.com> wrote:

[#247608] Re: Slow ruby regexes — Robert Klemme <shortcutter@...> 2007/04/12

On 11.04.2007 22:51, MenTaLguY wrote:

[#247683] Re: Slow ruby regexes — MenTaLguY <mental@...> 2007/04/12

On Thu, 12 Apr 2007 16:10:06 +0900, Robert Klemme <shortcutter@googlemail.com> wrote:

[#247770] Re: Slow ruby regexes — Robert Klemme <shortcutter@...> 2007/04/13

On 12.04.2007 18:31, MenTaLguY wrote:

[#247398] ClothRed (HTML to Textile) — Phillip Gawlowski <cmdjackryan@...>

I'm pleased to announce, that I've begun working on a small library to

16 messages 2007/04/10
[#247526] Re: [ANN] ClothRed (HTML to Textile) — "Victor \"Zverok\" Shepelev" <vshepelev@...> 2007/04/11

From: Phillip Gawlowski [mailto:cmdjackryan@googlemail.com]

[#247436] NameError: uninitialized constant Date::ABBR_MONTHS — Jigar Gosar <jigar.gosar@...>

DATE::ABBR_MONTHS exists in this doc here.

13 messages 2007/04/11

[#247471] How come this doesn't work? — Hey You <r3madi@...>

require 'socket'

13 messages 2007/04/11

[#247622] What is your favourite IDE? — "ChrisKaelin" <ck.stonedragon@...>

I prefer using eclipse for it's freedom, ruby and svn plugins etc. But

95 messages 2007/04/12
[#247681] Re: What is your favourite IDE? — Todd Werth <twerth@...> 2007/04/12

ChrisKaelin wrote:

[#247980] Re: IDEs, syntactic vs. semantic highlighting, etc. — Tim X <timx@...> 2007/04/15

Chad Perrin <perrin@apotheon.com> writes:

[#247737] Re: What is your favourite IDE? — Vlad Ciubotariu <vcciubot@...> 2007/04/12

Is anyone using Activestate's Kodomo? I know activestate is a player in

[#247757] Re: What is your favourite IDE? — "M. Edward (Ed) Borasky" <znmeb@...> 2007/04/13

Vlad Ciubotariu wrote:

[#247913] Re: What is your favourite IDE? Eclipse DLTK! — Tim X <timx@...> 2007/04/14

Todd Werth <twerth@infinitered.com> writes:

[#247636] Re: What is your favourite IDE? — "Alexey Kalmykov" <akalmykov@...>

15 messages 2007/04/12

[#247725] SNMP agent library? — "Marcus Bristav" <marcus.bristav@...>

I need to write an SNMP agent (raise traps and expose MIBs). Is there

15 messages 2007/04/12
[#247741] Re: SNMP agent library? — "Francis Cianfrocca" <garbagecat10@...> 2007/04/13

On 4/12/07, Marcus Bristav <marcus.bristav@gmail.com> wrote:

[#247790] Re: SNMP agent library? — "Marcus Bristav" <marcus.bristav@...> 2007/04/13

Hi Francis,

[#247809] Re: SNMP agent library? — "Francis Cianfrocca" <garbagecat10@...> 2007/04/13

On 4/13/07, Marcus Bristav <marcus.bristav@gmail.com> wrote:

[#247760] Idiom wanted (now hiring!) — Jonathan <terhorst@...>

Is there a cool way to do this without calling the function twice?:

28 messages 2007/04/13
[#247767] Re: Idiom wanted (now hiring!) — Joel VanderWerf <vjoel@...> 2007/04/13

Jonathan wrote:

[#247783] Re: Idiom wanted (now hiring!) — "Robert Dober" <robert.dober@...> 2007/04/13

On 4/13/07, Joel VanderWerf <vjoel@path.berkeley.edu> wrote:

[#247805] Magic Fingers (#120) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

14 messages 2007/04/13

[#247974] executing a system command and stopping it after a specified duration? — Robert La Ferla <robertlaferla@...>

I'd like to run a system command and then stop it after specified

9 messages 2007/04/15

[#248026] translate Perl diamond operator to Ruby — Chad Perrin <perrin@...>

Over the years, I've found the following to be an excellent way to whip

13 messages 2007/04/15

[#248151] factorial in ruby — "Trans" <transfire@...>

Is factorial defined anywhere in Ruby's core or standard library. If

21 messages 2007/04/16
[#248154] Re: factorial in ruby — "Jason Roelofs" <jameskilton@...> 2007/04/16

No and most likely not.

[#248245] Timeout errors using Net::HTTP on Windows — Toby DiPasquale <toby@...>

Hi all,

12 messages 2007/04/17

[#248255] new — "poison tooth" <fixxie.wits@...>

Im just learning ruby and im stuck the guide im using says

17 messages 2007/04/17

[#248263] how to have a default argument — "shawn bright" <nephish@...>

hello all,

11 messages 2007/04/17

[#248384] ruby scripting on microsoft active directory plus exchange — Pe, Botp <botp@...>

Hi All,

16 messages 2007/04/19
[#248445] Re: ruby scripting on microsoft active directory plus exchange — "Glen Holcomb" <damnbigman@...> 2007/04/19

I would recommend looking at Net::LDAP: gem install ruby-net-ldap

[#248463] Re: ruby scripting on microsoft active directory plus exchange — "Ball, Donald A Jr (Library)" <donald.ball@...> 2007/04/19

> I would recommend looking at Net::LDAP: gem install ruby-net-ldap

[#248516] what does this code do ? from libxml schema-test.rb ??? — "aktxyz@..." <aktxyz@...>

At the bottom of the schema-test.rb in the libxml gem, there is this

13 messages 2007/04/20
[#248522] Re: what does this code do ? from libxml schema-test.rb ??? — Reuben Grinberg <reuben.grinberg@...> 2007/04/20

aktxyz@gmail.com wrote:

[#248546] Morse Code (#121) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

32 messages 2007/04/20

[#248629] Tracking down a garbage collection problem — Wincent Colaiuta <win@...>

I'm trying to work out ways to reduce the memory use of one of my

12 messages 2007/04/21

[#248680] GameR 0.2 is out — Wim Vander Schelden <wim.vanderschelden@...>

I've released GameR, a small and simple game development framework for Ruby.

13 messages 2007/04/22

[#248744] Arrow operator with dash instead of equals (->) — Andrew Green <ndrw_grn@...>

Hi, all,

16 messages 2007/04/22
[#248747] Re: Arrow operator with dash instead of equals (->) — Timothy Hunter <TimHunter@...> 2007/04/22

Andrew Green wrote:

[#248750] Re: Arrow operator with dash instead of equals (->) — Andrew Green <ndrw_grn@...> 2007/04/23

> > Is it possible to use -> as a method name in Ruby?

[#248762] Question regarding design of the String Class — "Michael W. Ryder" <_mwryder@...>

Was there a reason the string class was implemented with str[i]

21 messages 2007/04/23
[#248774] Re: Question regarding design of the String Class — Daniel Martin <martin@...> 2007/04/23

"Michael W. Ryder" <_mwryder@worldnet.att.net> writes:

[#248777] Ruby Reports 1.0 RC1 (0.10.0) — "Gregory Brown" <gregory.t.brown@...>

== Ruby Reports 1.0, Release Candidate 1 (0.10.0) ==

13 messages 2007/04/23

[#248814] unix zcat with ruby? — music <music@...>

I have to read in many files.

14 messages 2007/04/23

[#248862] ruby and C — "smc smc" <fixxie.wits@...>

Would it be easier to learn ruby if i knew C/C+/C++ or the other way around?

14 messages 2007/04/24

[#248981] file-find 0.1.0 — Daniel Berger <djberg96@...>

Hi all,

18 messages 2007/04/24
[#248984] Re: [ANN] file-find 0.1.0 — "Leslie Viljoen" <leslieviljoen@...> 2007/04/24

On 4/24/07, Daniel Berger <djberg96@gmail.com> wrote:

[#248993] Re: [ANN] file-find 0.1.0 — "Daniel Berger" <djberg96@...> 2007/04/24

On 4/24/07, Leslie Viljoen <leslieviljoen@gmail.com> wrote:

[#249027] Using Watir and Ruby2Exe together — Jim Clark <diegoslice@...>

I've been asked to help solve a browser issue that I think Watir and

13 messages 2007/04/25

[#249034] C++ code into Ruby, I need it fast, no time for RTFM — Andrei Ursan <steelheart222@...>

[code]

41 messages 2007/04/25
[#249041] Re: C++ code into Ruby, I need it fast, no time for RTFM — John Joyce <dangerwillrobinsondanger@...> 2007/04/25

[#249043] Re: C++ code into Ruby, I need it fast, no time for RTFM — Andrei Ursan <steelheart222@...> 2007/04/25

> Translate this for me, right now. No, by yesterday. == A time when

[#249044] Re: C++ code into Ruby, I need it fast, no time for RTFM — "David Jones" <tafftoo@...> 2007/04/25

There are still ways to ask for things.

[#249060] Is it possible to make system use bash instead of sh? — Wai Tsang <simotsa@...>

Hi,

12 messages 2007/04/25

[#249076] DHH vs. WHY style — Trans <transfire@...>

Like to know others general opinions on having a comprehensive library

35 messages 2007/04/25

[#249226] 10 millisecond delay/callback — Earle Clubb <eclubb@...>

I need to perform a task every 10ms. I've been using

21 messages 2007/04/26
[#249228] Re: 10 millisecond delay/callback — khaines@... 2007/04/26

On Fri, 27 Apr 2007, Earle Clubb wrote:

[#249238] Using Ruby in a Corporate Environment — Steve Molitor <stevemolitor@...>

---------- Forwarded message ----------

10 messages 2007/04/26

[#249268] Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — "Gregory Brown" <gregory.t.brown@...>

Hi Folks,

24 messages 2007/04/27
[#249334] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — "Lyle Johnson" <lyle.johnson@...> 2007/04/27

On 4/27/07, Gregory Brown <gregory.t.brown@gmail.com> wrote:

[#249338] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — "Jamey Cribbs" <jcribbs@...> 2007/04/27

Lyle Johnson wrote:

[#249340] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — "Gregory Brown" <gregory.t.brown@...> 2007/04/27

On 4/27/07, Jamey Cribbs <jcribbs@netpromi.com> wrote:

[#249342] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — John Joyce <dangerwillrobinsondanger@...> 2007/04/27

[#249343] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — "Gregory Brown" <gregory.t.brown@...> 2007/04/27

On 4/27/07, John Joyce <dangerwillrobinsondanger@gmail.com> wrote:

[#249347] Re: Looking for thoughts and opinions on Ruport, and reporting in Ruby in general. — John Joyce <dangerwillrobinsondanger@...> 2007/04/27

[#249269] Output A File w/ Line Numbers? — John Joyce <dangerwillrobinsondanger@...>

I'd like to read a file and output its contents (just to terminal is

18 messages 2007/04/27
[#249414] Re: Output A File w/ Line Numbers? — "Robert Dober" <robert.dober@...> 2007/04/28

On 4/27/07, John Joyce <dangerwillrobinsondanger@gmail.com> wrote:

[#249274] string replacement... — Josselin <josselin@...>

I have a string : str = "/proposal/list/31551"

15 messages 2007/04/27

[#249315] Checking Credit Cards (#122) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

65 messages 2007/04/27

[#249430] cyclic array — Josselin <josselin@...>

I would like to print n elements from an Array in a cyclic way.

18 messages 2007/04/28

[#249524] Array.which_long? ( I coded an extension for Array ) — "Billy Hsu" <ruby.maillist@...>

Hi, I'm CFC

31 messages 2007/04/29
[#249526] Re: Array.which_long? ( I coded an extension for Array ) — "Chris Carter" <cdcarter@...> 2007/04/29

On 4/29/07, Billy Hsu <ruby.maillist@gmail.com> wrote:

[#249664] Re: Array.which_long? ( I coded an extension for Array ) — Robert Klemme <shortcutter@...> 2007/04/30

On 29.04.2007 16:11, Chris Carter wrote:

[#249667] Re: Array.which_long? ( I coded an extension for Array ) — "Robert Dober" <robert.dober@...> 2007/04/30

On 4/30/07, Robert Klemme <shortcutter@googlemail.com> wrote:

[#249670] Re: Array.which_long? ( I coded an extension for Array ) — Robert Klemme <shortcutter@...> 2007/04/30

On 30.04.2007 12:39, Robert Dober wrote:

[#249688] Re: Array.which_long? ( I coded an extension for Array ) — "Robert Dober" <robert.dober@...> 2007/04/30

On 4/30/07, Robert Klemme <shortcutter@googlemail.com> wrote:

[#249527] Re: Array.which_long? ( I coded an extension for Array ) — "David A. Black" <dblack@...> 2007/04/29

Hi --

[#249531] Re: Array.which_long? ( I coded an extension for Array ) — "Robert Dober" <robert.dober@...> 2007/04/29

On 4/29/07, David A. Black <dblack@wobblini.net> wrote:

[#249532] Re: Array.which_long? ( I coded an extension for Array ) — "David A. Black" <dblack@...> 2007/04/29

Hi --

[#249587] Class Level Variables — Cory <coryw@...>

Alright, I'm missing some core ruby concept here that I just can't

23 messages 2007/04/30
[#249589] Re: Class Level Variables — Ari Brown <ari@...> 2007/04/30

[#249603] sorting by rand? — seebs@... (Peter Seebach)

Browsing something at a bookstore recently, I saw an example of

22 messages 2007/04/30

[#249689] RoR how does scaffold work? — anansi <kazaam@...>

Hi,

17 messages 2007/04/30

[#249691] ruby and true — aidy.lewis@...

Hi,

16 messages 2007/04/30

[#249759] relocatable ruby distribution — "fkc_email-news @ yahoo dot com" <fkchang2000@...>

Hi All:

11 messages 2007/04/30

Fwd: Please Forward: Ruby Quiz Submission

From: James Edward Gray II <james@...>
Date: 2007-04-02 19:07:54 UTC
List: ruby-talk #246413
Begin forwarded message:

> From: Gavin Stark <gstark@mindspring.com>
> Date: April 2, 2007 2:05:46 PM CDT
> To: submission@rubyquiz.com
> Subject: Please Forward: Ruby Quiz Submission
>
>
> First time posting a Ruby Quiz solution....
>
> [ I'm not sure of the code formatting rules, so I apologize if this  
> is hard to read when posted ]
>
>
> module Enumerable
>   #
>   # output a collection after yielding successive pairs
>   # such that an collection of [1,2,3,4,5,6] will yield
>   # [1,2] then [2,3] then [3,4] then [4,5] then [5,6]
>   #
>   # I'm no ruby Enumerable guru so there is proably a
>   # more correct way to do this.
>   #
>   def collect_with_successive_pairs
>     result = []
>     for i in 0..self.length-2
>       result << ( yield self[i], self[i+1] )
>     end
>     return result
>   end
> end
>
> #
> # Compute cost based on number of unique keys pressed
> #
> class KeyCounterCost
>
>   def initialize
>     @seen_keys = []
>   end
>
>   # Since we are passed successive pairs, we return
>   # 0 if the first member of the pair is nil or if
>   # we have seen this key so far, otherwise mark that
>   # we've seen it and return a cost of 1.
>   def cost( source, dest )
>     return 0 if source.nil?
>     return 0 if @seen_keys.include?( source )
>
>     @seen_keys << source
>     return 1
>   end
>
> end
>
>
>
> #
> # Base class for cartesian distance computations
> #
> class CartesianKeypadDistance
>   protected
>     @@COORDINATES = { '1' => [0,0], '2' => [1,0], '3' => [2,0],
>                       '4' => [0,1], '5' => [1,1], '6' => [2,1],
>                       '7' => [0,2], '8' => [1,2], '9' => [2,2],
>                                     '0' => [1,3], '*' => [2,3]   }
> end
>
> #
> # Compute based on the manhattan distance which is always the
> # horizontal distance plus the vertical distance between keys
> #
> class ManhattanDistanceCost < CartesianKeypadDistance
>   def cost( source, dest )
>     return 0 if source.nil? || dest.nil?
>
>     source_coord = @@COORDINATES[ source ]
>     dest_coord   = @@COORDINATES[ dest ]
>
>     return (dest_coord[0]-source_coord[0]).abs + (dest_coord[1]- 
> source_coord[1]).abs
>   end
>
> end
>
> #
> # Compute cost based on cartesian distance between keys
> #
> class CartesianCost < CartesianKeypadDistance
>
>   def cost( source, dest )
>     return 0 if source.nil? || dest.nil?
>
>     source_coord = @@COORDINATES[ source ]
>     dest_coord   = @@COORDINATES[ dest ]
>
>     return Math.sqrt( (dest_coord[0]-source_coord[0])**2 +  
> (dest_coord[1]-source_coord[1])**2 )
>   end
>
> end
>
> #
> # Compute cost based on cartesian distance between keys if
> # each key were twice as wide as it is tall
> #
> class DoubleWideCartesianCost < CartesianKeypadDistance
>
>   def cost( source, dest )
>     return 0 if source.nil? || dest.nil?
>
>     source_coord = @@COORDINATES[ source ]
>     dest_coord   = @@COORDINATES[ dest ]
>
>     return Math.sqrt( 2*(dest_coord[0]-source_coord[0])**2 +  
> (dest_coord[1]-source_coord[1])**2 )
>   end
>
> end
>
> class MicrowaveKeypad
>
>   # Compute the most efficient key press
>   def most_efficient_press_sequence( seconds, tollerance = 0 )
>     seconds = seconds.to_i
>
>     throw "Invalid number of seconds" if seconds > 60*60
>
>     # Iterate over a range of number of seconds
>     results_hash = Hash.new
>     Range.new( seconds - tollerance, seconds + tollerance ).each do  
> |current_seconds|
>       # Compute the key sequences to test
>       sequences_to_test = [ seconds.to_s ] +  
> seconds_to_minutes_and_seconds( seconds )
>
>       # For each sequence, compute its cost and store it in the  
> results. If we see the
>       # same sequence more than once, it should have the same total  
> cost so we only
>       # compute it once
>       sequences_to_test.each do |current_sequence|
>         next if results_hash[ current_sequence ]
>         results_hash[ current_sequence ] = total_cost 
> ( current_sequence )
>       end
>     end
>
>     # Sort the result hash by the total cost and return the key  
> (sequence) of the lowest
>     sorted_results = results_hash.sort_by { |sequence,total_cost|  
> total_cost }
>     sorted_results.each { |result| puts "Sequence: #{result[0]} has  
> a cost of #{result[1]}"} if @options[:debug]
>     return sorted_results.first[0].to_i
>   end
>
>   private
>
>     # Store the computing class and any options
>     def initialize( cost_computer_class, *args )
>       @options = args.last.is_a?(Hash) ? args.pop : {}
>       @cost_computer_class = cost_computer_class
>
>     end
>
>     def total_cost( key_sequence )
>       # Create a cost computer, collect all of the pair wise costs  
> and then sum them.
>       @cost_computer =  @cost_computer_class.new
>
>       # Make sure there is a "*" (cook) button at the end of each  
> sequence and split the sequency by character
>       split = ( key_sequence.to_s + "*" ).split(//)
>       return split.collect_with_successive_pairs { |a,b|  
> @cost_computer.cost( a,b ) }.inject(0) { |total,cost| total + cost }
>     end
>
>     def seconds_to_minutes_and_seconds( seconds )
>       representations = []
>
>       # If the number of seconds is than a minute we won't convert
>       if seconds < 60
>         representations << seconds.to_s
>       else
>         minutes, remaining_seconds = seconds.divmod(60)
>
>         # Always try the number of seconds directly as input
>         representations << seconds.to_s
>
>         # Add the "mss" formatted string
>         representations << "#{minutes}#{remaining_seconds.to_s.rjust 
> (2,"0")}"
>
>         # Use values like "272" when we encouter an input of 3  
> minutes and 12 seconds.
>         # I doubt most people will use this format, but what the  
> heck...
>         representations << "#{minutes-1}#{(remaining_seconds 
> +60).to_s.rjust(2,"0")}" if ( minutes > 1 ) && ( ( 60 +  
> remaining_seconds ) < 100 )
>       end
>
>       return representations
>     end
>
> end
>
> puts MicrowaveKeypad.new(ManhattanDistanceCost, :debug =>  
> false ).most_efficient_press_sequence( "100" )
> puts MicrowaveKeypad.new(KeyCounterCost, :debug =>  
> true ).most_efficient_press_sequence( 3*60+12 )
>


In This Thread

Prev Next