[#401849] If statement — Masoud Ahmadi <lists@...>

Will anyone be able to point out what I am doing wrong.

15 messages 2012/12/02

[#401987] Trying to get "translator" to work — JD KF <lists@...>

So, basically, I'm trying to get the below code to work properly for

12 messages 2012/12/06

[#402012] Need help to select some listbox item in different listbox together — Jonathan Masato <lists@...>

Hello,

10 messages 2012/12/07

[#402045] if n belongs to set a and m belongs to set b repeat some steps, How? — "zubair a." <lists@...>

We can do so in java and similar languages like:

11 messages 2012/12/08

[#402078] Time.new(2001, 12, 3).to_i returns wrong value — Robert Buck <lists@...>

I am doing something that not many do, I am writing a database driver

9 messages 2012/12/09

[#402145] How I can create/extract a variable/hash into the current binding in Ruby? — Ramon de C Valle <rcvalle@...>

Hi,

12 messages 2012/12/12

[#402205] Wondering About Flatiron School — "Kevin Y." <lists@...>

Hi everyone!,

35 messages 2012/12/15
[#402207] Re: Wondering About Flatiron School — Chad Perrin <code@...> 2012/12/15

On Sat, Dec 15, 2012 at 11:51:08AM +0900, Kevin Y. wrote:

[#402214] Ruby quick reference arranged in ASCII sequence? — Old Grantonian <lists@...>

As a ruby beginner, I would be grateful for any links to a ruby

17 messages 2012/12/15

[#402226] print - and strip text between tags using Nokogiri — Paul Mena <lists@...>

I'm a Ruby Newbie trying to write a program to process thousands of HTML

13 messages 2012/12/15

[#402332] Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...>

Hello all,

37 messages 2012/12/19
[#402342] Re: Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...> 2012/12/20

First of all, thanks for the fast responses!

[#402352] Re: Perl to Ruby: regex captures to assignment. — Robert Klemme <shortcutter@...> 2012/12/20

On Thu, Dec 20, 2012 at 1:38 AM, Derrick B. <lists@ruby-forum.com> wrote:

[#402357] Re: Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...> 2012/12/20

Robert Klemme wrote in post #1089733:

[#402359] trying to strip characters from a line — Paul Mena <lists@...>

I'm reading a table from a MySQL database and then processing it row by

18 messages 2012/12/20

[#402394] simple division: -9 / 5 = -2 what? — "Derrick B." <lists@...>

$ irb

13 messages 2012/12/22

[#402412] POLS and string-handling — Paul Magnussen <lists@...>

Hi,

14 messages 2012/12/22

[#402460] "Open" dialog of Windows — "Damián M. González" <lists@...>

Hi guys, been researching about pop up the "open" file dialog of

11 messages 2012/12/24

[#402466] How do I install Ruby on my Ubuntu 12.10 partition. — Kaye Ng <lists@...>

I already have Ruby installed on my Windows 7 partition.

23 messages 2012/12/25

[#402510] Ruby Association Certified Ruby Programmer — Sean Westfall <lists@...>

How well respected is this certification in the industry: Ruby

27 messages 2012/12/27
[#402528] Re: Ruby Association Certified Ruby Programmer — Peter Hickman <peterhickman386@...> 2012/12/27

On 27 December 2012 01:28, Sean Westfall <lists@ruby-forum.com> wrote:

[#402519] using shebang with rvm? — Wesley Rishel <lists@...>

What would be the appropriate path to use after a shebang in the first

10 messages 2012/12/27

[#402555] numeric? — Brandon Weaver <keystonelemur@...>

I've found a bit of an annoyance trying to find out if a number is numeric

20 messages 2012/12/27

[#402580] Ruby Koans regarding Hashes. — "Derrick B." <lists@...>

I am trying to understand this, so let me know how I do. :) I know

18 messages 2012/12/28

[#402609] can't open new ruby program under "new" context menu — "Lee V." <lists@...>

I'm stuck on the new version at trying to do something very simple.

10 messages 2012/12/28
[#402618] Re: can't open new ruby program under "new" context menu — "Lee V." <lists@...> 2012/12/28

I just uninstalled what I had and reinstalled using the steps given in

[#402645] Re: can't open new ruby program under "new" context menu — "Derrick B." <lists@...> 2012/12/29

Lee V. wrote in post #1090514:

[#402653] Re: can't open new ruby program under "new" context menu — Lee Veinot <lee_veinot@...> 2012/12/30

Well, I'm up to page 43 in Chris Pine's book and having a lot of fun, but I still can't figure out two basic things.  One is what I've already asked you about.  I'm just going to paste what his book says so you can see what I'm having trouble with:

[#402642] require "test/unit" — "Mattias A." <lists@...>

Hi,

17 messages 2012/12/29
[#402667] Re: require "test/unit" — "Mattias A." <lists@...> 2012/12/31

Hi Dami叩n M. Gonz叩lez!

[#402747] Re: require "test/unit" — "Derrick B." <lists@...> 2013/01/04

Mattias A. wrote in post #1090700:

[#402749] Re: require "test/unit" — sto.mar@... 2013/01/04

Am 04.01.2013 19:48, schrieb Derrick B.:

Re: Perl to Ruby: regex captures to assignment.

From: Robert Klemme <shortcutter@...>
Date: 2012-12-21 10:34:51 UTC
List: ruby-talk #402376
On Thu, Dec 20, 2012 at 7:23 PM, Derrick B. <lists@ruby-forum.com> wrote:
> Robert Klemme wrote in post #1089733:
>>
>> I would choose a completely different approach: I would have a single
>> expression for matching and decide which assignments to make based on
>> the value of one of the capturing groups in the conditional branch:
>>
>> ["1 3/4", "5"].each do |s|
>>   puts s
>>
>>   if %r{\A(\d+)(?:\s+(\d+)/(\d+))?\z} =~ s
>>     w, n, d = $2 ? [$1.to_i, $2.to_i, $3.to_i] : [1, $1.to_i, 0]
>>     printf "%4d %4d %4d\n", w, n, d
>>   else
>>     $stderr.puts "No match #{s}"
>>   end
>> end
>>
>> I also spiced the regexp a bit more to be more restrictive.
>
> I am prompting for input, so I would be parsing individual strings and
> not a list of them.

That was just for demonstration purposes.

>  Though I will remember that for future static
> testing.  Also, I and using the "\S+" to handle negative rational
> numbers: "-1 3/4".

There's still a better way to do that then just match everything non
whitespace.  How would you parse ":s9d2++*3h43" as a number?

["1 3/4", "5", '-23', '-23 -4/4'].each do |s|
  puts s

  if %r{\A([-+]?\d+)(?:\s+([-+]?\d+)/(\d+))?\z} =~ s
    w, n, d = $2 ? [$1.to_i, $2.to_i, $3.to_i] : [1, $1.to_i, 0]
    printf "%4d %4d %4d\n", w, n, d
  else
    $stderr.puts "No match #{s}"
  end
end

Btw, did I mention that I find your variable assignment weird?  I'd rather do

["1 3/4", "5", '-23', '-23 -4/4'].each do |s|
  puts s

  if %r{\A([-+]?\d+)(?:\s+([-+]?\d+)/(\d+))?\z} =~ s
    w, n, d = $2 ? [$1.to_i, $2.to_i, $3.to_i] : [$1.to_i, 0, 1]
    printf "%4d %4d %4d\n", w, n, d
  else
    $stderr.puts "No match #{s}"
  end
end

>> If you like readability then why are you using Perl in the first place?
>> :-)
>
> Because Perl is awesome!

Hm...  It's been a while that I thought that (but I did actually
once).  IMHO Perl has gone over the edge of usefulness long ago.

>  That is why I chose Ruby as my next personal
> choice of languages to learn.

Good choice!

>  I just completed a quarter of Programming
> Language Concepts where I was introduced to Lisp, but was also required
> to use some Python.  I know Python is a fascinatng language, but I am
> not yet a big fan of it.  The final assignment was write a class to work
> with fractions.  It started as a C++ class, then migrated to Perl (for
> fun), and now Ruby (more fun).

:-)

> I attached the two versions, Ruby and Perl.  The Perl version uses a
> "class", also.  Feel free to suggest how to make the Ruby version more
> Ruby-ish!  My goal is to take more advantage of the OO aspects of Ruby,
> and not just have it look like Perl.

I don't have the time right now but you should definitively use class
Rational.  Also your parsing of the command line could be better:

do
  print "Fraction 1: "
  input = gets or break
  f1 = parse_fraction(input)

  print "Fraction 2: "
  input = gets or break
  f2 = parse_fraction(input)

  print "Command: "
  input = gets or break

  case input
  when "A"
    puts f1 + f2
  when "S"
    puts f1 - f2
 ...
 else
   abort "Invalid command: #{input}"
 end

end until cmd == "Q"

puts "Quitting"


You should also not implement #to_string but rather #to_s and then use
string interpolation for constructing your outputs.

Kind regards

robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread