[#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: Trouble comparing a NULL in Ruby

From: Robert Klemme <shortcutter@...>
Date: 2011-11-19 10:43:26 UTC
List: ruby-talk #390354
On Fri, Nov 18, 2011 at 9:59 PM, Stephen Beckman <bec04015@gmail.com> wrote=
:
> Hey folks,
>
> I am currently writing a script that functions as follows:
>
> It will first open up a connection to our local database and run a SQL
> script I have written in, then create an excel file based off of that
> SQL query. =A0From that point it will sit until changes have potentially
> been made in the database. =A0At that point the excel file that had been
> made and then saved off will be called again as a master record to
> compare to the same SQL query and new excel file which will be created.
> I have it written so that from the command prompt one would simply call
> the .rb script, state whether the master record is being created or
> there is a check being made to a previously made excel file and what the
> name of that file is. =A0This is where my problem enters in, is that if
> there are blanks in the master file, as in nothing in the field in
> either the SQL query and thereby in the excel file, it chokes and won't
> fire if there is a legitimate input in a later file.
>
> Let me illustrate:
>
> "" =3D=3D "foo"
>
> would pass back true.

I don't see how that could be.  I would start by inspecting elements
you compare and which return (seemingly) wrong results along with
their class.

> Perhaps this is a problem with the Spreadsheet gem that I am using and
> in that case this is an inappropriate place to ask for assistance, if
> so, my apologies. =A0The code in question has been attached.
>
> I have tried several different things, including using '.empty',
> '.nil?', and what is written there now in an attempt to have it either
> write it as 'NULL' when creating the master sheet, or to catch it when
> making a check as it is written.
>
> I feel like the way to solve this is to have it catch the empty cells
> when it is being parsed, but I haven't been able to do that yet, and the
> reason why I am asking.
>
> Thanks in advance!
>
> Attachments:
> http://www.ruby-forum.com/attachment/6755/newbill.rb

It's a bit difficult to sift through all the code especially since you
do not make much use of variables.  You loose two advantages: by
storing results of expressions you evaluate repeatedly in a variable
code becomes more efficient.  And, probably more important, by having
a named entity code becomes more readable if you choose a telling name
for the variable.  I mean this for example

        if sheet.row(j).at(i).to_s !=3D ""
          print "Error: "
          print sheet.row(j).to_a.at(i)
          print " "
          puts results[j].to_a.at(i)
        end

At least "sheet.row(j)" repeats but I reckon you rather want
"sheet.row(j).at(i)" in a variable.

You can certainly make a few things shorter, e.g.

  begin
    if (ARGV[1].to_s.end_with?(".xls"))
    else
      raise
    end
  rescue
    puts "The file name is invalid, please be sure it ends with '.xls'"
    exit!
  end

->

abort "The file name is invalid, please be sure it ends with '.xls'"
unless ARGV[1].end_with? '.xls'

And what do you need that empty block for?

  results =3D result.each(:symbolize_keys =3D> true, :as =3D> :array,
:cache_rows =3D> true, :empty_sets =3D> true) do |rowset| end

Generally I would approach this a bit differently: I would store the
result in a file as a marshaled object graph.  Then do later
comparisons against this.  The excel would just be derived from that
state if the query result had changed.  This avoids having to reparse
the excel sheet again and again.

Kind regards

robert

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

In This Thread

Prev Next