[#389739] Ruby Challenge — teresa nuagen <unguyen90@...>

Here is a ruby challenge for all you computer science lovers out there,

22 messages 2011/11/05
[#389769] Re: Ruby Challenge — "Jonan S." <jonanscheffler@...> 2011/11/05

Totally unrelated to any husker computer science programs right? Like

[#389905] Re: Ruby Challenge — Stephen Ramsay <sramsay.unl@...> 2011/11/09

Jonan S. wrote in post #1030330:

[#389907] Re: Ruby Challenge — aseret nuagen <unguyen90@...> 2011/11/09

> You mean like the professor for the course? Because that would be me .

[#389915] Re: Ruby Challenge — Robert Klemme <shortcutter@...> 2011/11/09

On Wed, Nov 9, 2011 at 4:52 AM, aseret nuagen <unguyen90@aim.com> wrote:

[#389792] Tricky DSL, how to do it? — Intransition <transfire@...>

I'd want to write a DSL such that a surface method_missing catches

18 messages 2011/11/06

[#389858] Compiling Ruby Inline C code - resolving errors — Martin Hansen <mail@...>

I am trying to get this Ruby inline C code http://pastie.org/2825882 to

12 messages 2011/11/08

[#389928] Forming a Ruby meetup group... — "Darryl L. Pierce" <mcpierce@...>

Where I work we have a local Ruby group that used to meet up, until the

12 messages 2011/11/09

[#389950] The faster way to read files — "Noé Alejandro" <casanejo@...>

Does anybody know which is the fastest way to read a file? Lets say

18 messages 2011/11/09

[#390064] referring to version numbers in a gem — Chad Perrin <code@...>

How do I specify and access a gem's version number within the code of the

28 messages 2011/11/11

[#390238] RVM problem, plz help — Misha Ognev <b1368810@...>

Hi, I have this problem:

15 messages 2011/11/16

[#390308] any command line tools for querying yaml files — Rahul Kumar <sentinel1879@...>

(Sorry, this is not exactly a ruby question).

11 messages 2011/11/18

[#390338] Newbie - cmd question — Otto Dydakt <ottodydakt@...>

I've literally JUST downloaded ruby from rubyinstaller.org.

21 messages 2011/11/19
[#390342] Re: Newbie - cmd question — Otto Dydakt <ottodydakt@...> 2011/11/19

OK thank you, I uninstalled & reinstalled, checking the three boxes at

[#390343] Re: Newbie - cmd question — "Ian M. Asaff" <ian.asaff@...> 2011/11/19

did you type "irb" first to bring up the ruby command prompt?

[#391154] Re: Newbie - cmd question — "Hussain A." <hahmad@...> 2011/12/12

Hi all,

[#391165] Re: Newbie - cmd question — Luis Lavena <luislavena@...> 2011/12/12

Hussain A. wrote in post #1036281:

[#390374] Principle of Best Principles — Intransition <transfire@...>

I seem to run into a couple of design issue a lot and I never know what is

16 messages 2011/11/20

[#390396] how to call Function argument into another ruby script. — hari mahesh <harismahesh@...>

Consider I have a ruby file called library.rb.

10 messages 2011/11/21

[#390496] How to make 1.9.2 my default version using RVM — Fily Salas <fs_tigre@...>

Hi,

25 messages 2011/11/24

[#390535] Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...>

Well, first of all, I'm new to Ruby, and to this forum. So, hello. :)

39 messages 2011/11/25
[#390580] Re: Is high-speed sorting impossible with Ruby? — Joao Pedrosa <joaopedrosa@...> 2011/11/27

Hi,

[#390593] Re: Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...> 2011/11/27

Joao Pedrosa wrote in post #1033884:

[#390600] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

A big gain can be had by disabling the garbage collector. Here is my best

[#390601] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

I've thrown various solutions up on github here:

[#390650] Loading a faulty ruby file - forcing this — Marc Heiler <shevegen@...>

Hi.

10 messages 2011/11/29

[#390689] Stupid question — James Gallagher <lollyproductions@...>

Hi everyone.

22 messages 2011/11/30

Re: Reading CSV File

From: Dave Aronson <rubytalk2dave@...>
Date: 2011-11-12 21:49:42 UTC
List: ruby-talk #390109
On Thu, Nov 10, 2011 at 21:38, Darren H. <dhulem1@umbc.edu> wrote:

>> puts "enter Product ID Number"
>> product_id = gets.chomp
>> CSV.foreach("c:\plantproducts.csv") do |row|
>> if product_id == row[0]
>> do (price * qty)
> end
> end
>
> puts "Enter Qty)
> qty = gets.chomp
>
>
> # the price is given in the csv file when I run the code I get an error
> "syntax error, unexpected keyword_do_block do (qty * price)

Does the code that gives you the error, look like the above, though
minus the quote markers of course?  I very much doubt it, since at the
very least the puts of the quantity prompt, is not syntactically
valid.  If you try to retype, you're bound to get something wrong,
assuming you are in fact only human.  :-)  Make the machine do the
work, and use copy-and-paste.

Now, assuming it at least *resembles* the above, you've got something
weird going on in the stuff you tell it to do in case of a match.
What is "do (price * qty)" supposed to mean?  At that point, the user
hasn't even entered a quantity, so you'll probably wind up with it
gritching about an undefined variable, or if it somehow defaults to
zero the math result will always be zero, or if its value is leftover
from a previous run then it's likely to be wrong for this one.

As for the unexpected keyword, I think what it's probably trying to
tell you is that it doesn't expect a "do" at that point.  A "do" is
usually for passing a block of code to some method such as map or
times, to tell it what to map onto each item or what to do a given
number of times.  But you don't have any such construct preceding your
"do".

Since I'm not sure exactly what you're trying to accomplish and how
(though I think I could make a good guess), here's what I suggest.
Start with plain English (or whatever).  Write out how you would tell
a *human* to do what you're asking.  Do it in very simple steps, one
by one.  Indent sub-steps, ending indented blocks with "end" or some
such placeholder just to be sure.  (I'm going to use dash-space pairs
just so they don't get squished out in the web forum, but "for real"
I'd use just spaces.)  Then translate each step into Ruby.  If you
find that something doesn't translate well, you probably need to break
it down into simpler steps.  (These can be either put where they are
in the list, or as a new method.)  This is what we call "pseudocode".
Producing these *thoughts*, if not necessarily this writing, is in
fact the core essential of old-style programming, what the fancypants
call "top-down stepwise refinement".  It's also the core of modern
programming once you get past the overall system design of objects and
suchlike, certainly applicable at the level of individual methods.
Once you get very well versed in this sort of thing, you can skip this
step entirely and spit out code directly.

In the case of what I think you're trying to do, it might start like:

- Ask me for a Product ID Number
- Write down what I tell you, and mark it as ID
- Look up the information about the product with that ID
- Ask me for a Quantity
- Write down what I tell you, and mark it as Quantity
- Now what do we do?  (The code above stops there.)

Then "Look up the information about the product with that ID" might
then get broken up into:

- For each line in the CSV file
- - If the first part of the line matches the ID you wrote down
- - - This seems to be the part where you're not sure what to do, right?
- - end
- end

Can you take it from there?

-Dave

-- 
LOOKING FOR WORK! What: Ruby (on/off Rails), Python, other modern languages.
Where: Northern Virginia, Washington DC (near Orange Line), and remote work.
See: davearonson.com (main) * codosaur.us (code) * dare2xl.com (excellence).
Specialization is for insects. (Heinlein) - Have Pun, Will Babble! (Aronson)

In This Thread