[#345382] Nice algorithm for 'spreading' indexes across an array? — Max Williams <toastkid.williams@...>

Little ruby algorithm puzzle...

13 messages 2009/09/01

[#345407] how to convert string to binary and back in Ruby 1.9? — Joe <ziggurism@...>

I'm using Ruby 1.9.1-p243 on Mac OS X 10.5.8.

10 messages 2009/09/01

[#345437] clogger 0.0.4 - configurable request logging for Rack — Eric Wong <normalperson@...>

* http://clogger.rubyforge.org/

10 messages 2009/09/02
[#345439] Re: [ANN] clogger 0.0.4 - configurable request logging for Rack — Iñaki Baz Castillo <ibc@...> 2009/09/02

2009/9/2 Eric Wong <normalperson@yhbt.net>:

[#345446] rdoc — Oleg Puchinin <ruby_talk@...>

Hello !

17 messages 2009/09/02
[#346260] Ruby 1.9 rdoc never ends (Re: rdoc) — James Britt <james.britt@...> 2009/09/12

Oleg Puchinin wrote:

[#346267] Re: Ruby 1.9 rdoc never ends (Re: rdoc) — Ryan Davis <ryand-ruby@...> 2009/09/12

[#346276] Re: Ruby 1.9 rdoc never ends (Re: rdoc) — Roger Pack <rogerpack2005@...> 2009/09/12

Ryan Davis wrote:

[#345493] What licensing info is needed in code headers? — "Shot (Piotr Szotkowski)" <shot@...>

Disclaimer: I know that some of you live in jurisdictions that do not

10 messages 2009/09/02

[#345535] Simple New Ruby Programmer Problem with $stdin.gets — Mason Kelsey <masonkelsey@...>

I'm having difficulty getting any command to work to pick up input from a

14 messages 2009/09/02

[#345573] Type checking function parameters — Nick Green <cruzmail.ngreen@...>

More or less all my functions look something like

22 messages 2009/09/03
[#345593] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/03

On 3 Sep 2009, at 05:04, Nick Green wrote:

[#345606] Re: Type checking function parameters — Paul Smith <paul@...> 2009/09/03

My first stab at some Ruby started like this too.

[#345667] Re: Type checking function parameters — Nick Green <cruzmail.ngreen@...> 2009/09/03

OK...

[#345676] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/04

On 3 Sep 2009, at 23:47, Nick Green wrote:

[#345687] Re: Type checking function parameters — James Edward Gray II <james@...> 2009/09/04

On Sep 3, 2009, at 7:30 PM, Eleanor McHugh wrote:

[#345745] Re: Type checking function parameters — Eleanor McHugh <eleanor@...> 2009/09/04

On 4 Sep 2009, at 03:56, James Edward Gray II wrote:

[#345828] Re: Type checking function parameters — spiralofhope <spiralofhope@...> 2009/09/06

Along the lines of this thread..

[#345835] Re: Type checking function parameters — "David A. Black" <dblack@...> 2009/09/06

Hi --

[#345773] Rubyscript instead of javascript — Damjan Rems <d_rems@...>

30 messages 2009/09/05
[#345970] Re: Rubyscript instead of javascript — Jg W Mittag <JoergWMittag+Usenet@...> 2009/09/08

David Masover wrote:

[#345774] how to compare two object instances? is "m1.to_yaml.eql?(m2.to_yaml)" a good way? — Greg Hauptmann <greg.hauptmann.ruby@...>

Hi,

8 messages 2009/09/05

[#345848] i need to strip \n and nil — Bigmac Turdsplash <i8igmac@...>

im sending files back and forth form a client and a server using

16 messages 2009/09/06

[#345883] Executing system commands in threads under Ruby 1.8.6 — vhaerun vh <etaern@...>

I tried to write a script that makes use of external binaries. Each

17 messages 2009/09/07
[#345889] Re: Executing system commands in threads under Ruby 1.8.6 — Robert Klemme <shortcutter@...> 2009/09/07

2009/9/7 vhaerun vh <etaern@yahoo.com>:

[#345893] Re: Executing system commands in threads under Ruby 1.8.6 — vhaerun vh <etaern@...> 2009/09/07

Here's a link to the question I asked on SO:

[#345901] Re: Executing system commands in threads under Ruby 1.8.6 — Eleanor McHugh <eleanor@...> 2009/09/07

On 7 Sep 2009, at 09:55, vhaerun vh wrote:

[#345904] Re: Executing system commands in threads under Ruby 1.8.6 — Bertram Scharpf <lists@...> 2009/09/07

Hi,

[#345886] Ruby 1.9, Rubygems, and .gemspec warnings — Rob Sanheim <rsanheim@...>

Hi all

14 messages 2009/09/07

[#346018] Tutorial challenge program help — Chris Logan <t-logan3@...>

Hello all im really new to ruby as in a few days and getting into it. i

20 messages 2009/09/09
[#346023] Re: Tutorial challenge program help — 7stud -- <bbxx789_05ss@...> 2009/09/09

Chris Logan wrote:

[#346027] Re: Tutorial challenge program help — Chris Logan <t-logan3@...> 2009/09/09

7stud -- wrote:

[#346091] How Are Variables Kept Independent of Each Other Yet Pass Values? — Mason Kelsey <masonkelsey@...>

Somewhere in the several books I've been learning Ruby from there was the

14 messages 2009/09/10
[#346096] Re: How Are Variables Kept Independent of Each Other Yet Pass Values? — venkatesh Peddi <venkat.peddi@...> 2009/09/10

[#346099] Re: How Are Variables Kept Independent of Each Other Yet Pass Values? — Yossef Mendelssohn <ymendel@...> 2009/09/10

On Sep 9, 10:50=A0pm, venkatesh Peddi <venkat.pe...@hotmail.com> wrote:

[#346106] Asynchronous http POST? — Ivan Shevanski <ocelot117@...>

Hey everyone, I'm new to Ruby and to the mailing list, so go easy.

14 messages 2009/09/10
[#346166] Re: Asynchronous http POST? — Ezra Zygmuntowicz <ezmobius@...> 2009/09/10

[#346193] populating a hash from an array using inject — Glenn Jackman <glennj@...>

I was looking at this problem on Stack Overflow (this one:

12 messages 2009/09/10

[#346324] module to overwrite method defined via define_method — Gaspard Bucher <gaspard@...>

Hi List !

17 messages 2009/09/13
[#346326] Re: module to overwrite method defined via define_method — "David A. Black" <dblack@...> 2009/09/13

Hi --

[#346328] Re: module to overwrite method defined via define_method — Gaspard Bucher <gaspard@...> 2009/09/13

David A. Black wrote:

[#346347] FasterCSV.foreach loop — Dot Baiki <dot_baiki@...>

Hello community,

16 messages 2009/09/13

[#346367] .map.with_object(3){|v|v+3} #=> 3 Is this a bug? — ErMaker <ermaker@...>

At ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-mswin32_90]

15 messages 2009/09/14

[#346383] Pre-allocate large amount of memory? — Carsten Gehling <carsten@...>

I've created a small daemon, that serves certain data very fast to our

15 messages 2009/09/14
[#346404] Re: Pre-allocate large amount of memory? — Robert Klemme <shortcutter@...> 2009/09/14

2009/9/14 Carsten Gehling <carsten@sarum.dk>:

[#346419] whats the best way to package deploy a Ruby app to windows??? (no UI, also standalone if possible) — Greg Hauptmann <greg.hauptmann.ruby@...>

Hi,

8 messages 2009/09/14

[#346452] Command line — Rong <ron.green@...>

Please forgive this stupid newb question but I thought it was possible

13 messages 2009/09/15

[#346500] Array of Hashes in an array of hashes - Complicated! — Matt Brooks <mattbrooks@...>

I have an unique problem that I can't solve. I am sorry this is long,

17 messages 2009/09/15
[#346505] Re: Array of Hashes in an array of hashes - Complicated! — John W Higgins <wishdev@...> 2009/09/15

Morning Matt,

[#346508] Re: Array of Hashes in an array of hashes - Complicated! — Matt Brooks <mattbrooks@...> 2009/09/15

Hi John,

[#346510] Re: Array of Hashes in an array of hashes - Complicated! — John W Higgins <wishdev@...> 2009/09/15

Matt,

[#346515] Re: Array of Hashes in an array of hashes - Complicated! — Aldric Giacomoni <aldric@...> 2009/09/15

+1 on object creation

[#346574] string to array — Re BR <rereis@...>

Hello all,

15 messages 2009/09/16

[#346611] block issues... — Dylan Lukes <revenantphoenix@...>

In the following block, each plugin in the constant hash PLUGINS is

17 messages 2009/09/16

[#346621] Monkey Patching 2 Methods, Overrides One Method, Not The Other — MaggotChild <hsomob1999@...>

I'm monkey patching 2 methods of an existing module: some_method() and

18 messages 2009/09/17

[#346645] Mucking about with dynamically adding methods to objects — Paul Smith <paul@...>

I've been toying with Ruby for a while, but only now am I beginning to

12 messages 2009/09/17
[#346652] Re: Mucking about with dynamically adding methods to objects — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2009/09/17

On Thu, Sep 17, 2009 at 11:44 AM, Paul Smith <paul@pollyandpaul.co.uk> wrot=

[#346665] Re: Mucking about with dynamically adding methods to objects — Paul Smith <paul@...> 2009/09/17

2009/9/17 Jes=FAs Gabriel y Gal=E1n <jgabrielygalan@gmail.com>:

[#346676] Value isn't appended in puts statement(appears on next line) — Mrmaster Mrmaster <mrsolarlife@...>

Hello,

13 messages 2009/09/17
[#346678] Re: Value isn't appended in puts statement(appears on next line) — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2009/09/17

On Thu, Sep 17, 2009 at 8:51 PM, Mrmaster Mrmaster

[#346759] Newbie: Are Ruby regexp's a subset, superset, or equal to Perl's? — Harry <simonsharry@...>

Hi,

13 messages 2009/09/18

[#346774] Exceptional Rails Developer — Richard Price <richard.price100@...>

Hi all,

32 messages 2009/09/18
[#347451] Re: Exceptional Rails Developer — Ilan Berci <ilan.berci@...> 2009/09/30

Richard Price wrote:

[#347452] Re: Exceptional Rails Developer — Zundra Daniel <zundra.daniel@...> 2009/09/30

At least he didn't say "Rockstar" or "Ninja"

[#347476] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/09/30

On Wednesday 30 September 2009 01:45:27 pm Zundra Daniel wrote:

[#347477] Re: Exceptional Rails Developer — Greg Donald <gdonald@...> 2009/09/30

On Wed, Sep 30, 2009 at 6:44 PM, David Masover <ninja@slaphack.com> wrote:

[#347482] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/10/01

On Wednesday 30 September 2009 06:54:16 pm Greg Donald wrote:

[#347514] Re: Exceptional Rails Developer — Eleanor McHugh <eleanor@...> 2009/10/01

On 1 Oct 2009, at 01:32, David Masover wrote:

[#347551] Re: Exceptional Rails Developer — David Masover <ninja@...> 2009/10/01

On Thursday 01 October 2009 08:20:26 am Eleanor McHugh wrote:

[#347592] Re: Exceptional Rails Developer — Eleanor McHugh <eleanor@...> 2009/10/02

On 1 Oct 2009, at 19:15, David Masover wrote:

[#347596] Re: Exceptional Rails Developer — Aldric Giacomoni <aldric@...> 2009/10/02

[#346775] Determining if a file is binary or text — James Masters <james.d.masters@...>

Hi all,

15 messages 2009/09/18

[#346891] Incrementing variable names in a loop? — Matt Brooks <mattbrooks@...>

I have a function write_log that takes in a string and it prints to

10 messages 2009/09/21

[#347044] the great ruby editor and ide roundup — Martin DeMello <martindemello@...>

https://spreadsheets.google.com/ccc?key=0Al_hzYODcgxwdG9tUFhqcVVoUDVaLTlqT2YtNjV1N0E&hl=en

26 messages 2009/09/23
[#347045] Re: the great ruby editor and ide roundup — Rajinder Yadav <devguy.ca@...> 2009/09/23

On Wed, Sep 23, 2009 at 4:02 PM, Martin DeMello <martindemello@gmail.com> wrote:

[#347058] How do you limit the line length of the output commands? Where is pqueue library documented? — Mason Kelsey <masonkelsey@...>

There must be an easy way to solve the problem of controlling the length of

12 messages 2009/09/23

[#347156] Roulette & rand — Semih Ozkoseoglu <ozansemih@...>

Hi,

22 messages 2009/09/25
[#347161] Re: Roulette & rand — Stefano Crocco <stefano.crocco@...> 2009/09/25

On Friday 25 September 2009, Semih Ozkoseoglu wrote:

[#347164] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Hi again Stefano,

[#347171] Re: Roulette & rand — Stefano Crocco <stefano.crocco@...> 2009/09/25

On Friday 25 September 2009, Semih Ozkoseoglu wrote:

[#347173] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Stefano, Paul,

[#347179] Re: Roulette & rand — Semih Ozkoseoglu <ozansemih@...> 2009/09/25

Hi again,

[#347193] How to remove duplicate elements in a 2D array — Li Chen <chen_li3@...>

Hi all,

20 messages 2009/09/25

[#347202] Backporting Enumerator.new { ... } to Ruby 1.8.7 — "Shot (Piotr Szotkowski)" <shot@...>

Hello, good people of ruby-talk.

12 messages 2009/09/25

[#347260] handling of regexp objects that aren't referenced by variables, arrays, tables or objects — ThomasW <x.zupftom@...>

Hi,

12 messages 2009/09/27

[#347354] How do I use nitpick — "Michael W. Ryder" <_mwryder@...>

I was looking for a program like lint in C and came across nitpick. I

23 messages 2009/09/29
[#347366] Re: How do I use nitpick — Hassan Schroeder <hassan.schroeder@...> 2009/09/29

On Mon, Sep 28, 2009 at 9:25 PM, Michael W. Ryder

[#347397] Re: How do I use nitpick — "Michael W. Ryder" <_mwryder@...> 2009/09/29

Hassan Schroeder wrote:

[#347398] Re: How do I use nitpick — Ryan Davis <ryand-ruby@...> 2009/09/29

[#347364] Group by unique entries of a hash — Ne Scripter <stuart.clarke@...>

I have two data sets loaded into a hash to give the following output

15 messages 2009/09/29

[#347443] Get current working copy version in subversion/git — Anthony Metcalf <anthony.metcalf@...>

Hi,

11 messages 2009/09/30

[#347456] SystemStackError: stack level too deep > how make it deeper? — Joshua Muheim <forum@...>

Hi all

15 messages 2009/09/30
[#347459] Re: SystemStackError: stack level too deep > how make it deeper? — Jason Roelofs <jameskilton@...> 2009/09/30

On Wed, Sep 30, 2009 at 3:47 PM, Joshua Muheim <forum@josh.ch> wrote:

Re: Tutorial challenge program help

From: Josh Cheek <josh.cheek@...>
Date: 2009-09-10 08:32:52 UTC
List: ruby-talk #346117
On Thu, Sep 10, 2009 at 2:54 AM, Chris Logan <t-logan3@hotmail.com> wrote:

> Well, after hearing all of your guy's advice, I thought it over and
> finally came up with the answers. Its monkey patched (those words make
> me laugh) but it works bug free and you have no idea how elated I am at
> that (well maybe you do). Monkey patching may be bad but it got my job
> done. Maybe after I get a lot more experience I will find out how to do
> this without it but for now I'm satisfied and moving on in the tutorial.
> I was going to post it but I remebered what one of the earlier posts
> said so I did this.
>
> http://pastie.org/612032
>
> I was hoping for a couple honest opionions.
> Any comments or any more tips are greatly appreciated.
> You have all been a huge help. Thank you all.
>
> Chris
> --
> Posted via http://www.ruby-forum.com/.
>
> Hi, Chris, I'm glad you got it working. After you code a little bit longer,
you should come back to it and evaluate your progress, maybe try to refactor
the code to incorporate the experience you have gained.

There are a few things, notice the syntax highlighting on line 46, you need
to either escape that apostrophe, or else wrap your string in double quotes.



You have

class String
  def monkey?
    self != (Math::PI) and self != 'BYE'
  end
end

But this is a little tricky. Your variable was initially a String, but when
you assigned it the value of Math::PI, it became a Float. So that method
monkey? does not exist on for Floats. Since it is defined in the String
class, self will always be a string, so it can never be equal to Math::PI

Monkey patching just means that you are adding functionality to the class in
some unofficial way, changing it (usually at run-time) with your own code.
It can cause issues, and be unintuitive, so it is sometimes looked down on,
but that doesn't mean it should always be avoided. In fact, I'd argue that
in a small program like this, which is built around the state of the string
being shouted or not (it is the deaf grandma problem, after all), that it
should be very intuitive what that method does, it is simple and
straightforward, and is a cleaner solution, both in terms of OO, and in
terms of the nature of the problem, than defining a function to receive this
as a parameter.

However, your monkey method would be much better served as a function that
receives a value, because then it can receive any value at all (where
shouted? indicates the state of the string, monkey? does not, because a
Float is not a string).

So you could do something like this

def monkey?( var )
  var != Math::PI && var != "BYE"
end

Then instead of saying something like

elsif reply.monkey?

you would say

elsif monkey?(reply)

Passing the reply to the monkey?() function instead of calling the .monkey?
method on it.

Now, that said, if you follow your program logic, you have

if reply == (Math::PI)
  puts 'Do you know when I was your age I was a model?'
  reply = gets.chomp
end

which gets executed first, so really, reply will never be Math::PI when it
gets to the reply.mokey? call, because this code will ensure that it becomes
the input.



Also, as far as using constants goes, Math::PI doesn't make a lot of sense.
I understand thats the point of it ;) but I think a better choice would be
to use a symbol. You can think of a symbol as a string with the properties
of a numeric constant (granted there is more to it than that). Strings are
defined like this "string" and symbols are defined like this :symbol So I
would suggest that instead of using Math::PI, you use a symbol that makes
sense for you, something like :uninitialized Then when you look at your code
later, seeing :uninitialized in all places where you currently have Math::PI
will make a lot more sense.

Also, an uninitialized variable is nil by default, you should probably try
to get comfortable with this, because that will be the case for almost
everything in Ruby. So with that understanding, you could bypass the need
for a constant altogether.

Hope that helps, glad you're making progress, and keep at it :)

In This Thread