hi there,
i am not a expert with ruby at all. this is my first post, i do hope
it’s at right place, please advise otherwise.
i have some dump reporting to do. The input is a csv file. i figured
rupert could be my friend.
i got it up and running with the following
instanciate the csv reading stuff
t = Table(“source.csv”)
remove unnecessary junk
t.remove_column(“Product/Release Xdor”)
now i want to filter and search data like
Student.find(:all, :conditions => { :first_name => “Harvey”, :status =>
1 })
(example taken from
ActiveRecord::Base)
however, the trick is that some of the column names have both the ‘/’
character and white spaces in them.
so it would look like
t.find(:all, :conditions => { :Product/White Darf => “Harvey”,
:Solution/Small Story => 0 })
=> that is giving me syntax errors.
t.find(:all, :conditions => { :‘Product/White Darf’ => “Harvey”,
:‘Solution/Small Story’ => 0 })
=> this is throwing instead
$ ruby ruport.rb Anovo-Biometrics-cases.csv
ruport.rb:86:in find': wrong number of arguments (2 for 1) (ArgumentError) from ruport.rb:86:in
run’
from ruport.rb:115
I feel confused. it seriously look like i’ve fallen into some beginners
issue.
anyone has an idea ?
thanks
Hi,
On Thu, Jul 29, 2010 at 8:30 AM, Fourchette Fourchette
[email protected] wrote:
hi there,
i am not a expert with ruby at all. this is my first post, i do hope
it’s at right place, please advise otherwise.
There’s a Ruport mailing list here:
http://groups.google.com/group/ruby-reports
anyone has an idea ?
You’re confusing the Ruport API with ActiveRecord. Based on your
description I’m assuming you’re using Ruport in a stand-alone Ruby
script and not Rails.
Take a look at Ruport::Data::Table::rows_with
(http://api.rubyreports.org/classes/Ruport/Data/Table.html#M000036)
You’ll need to do something like:
t.rows_with(‘Product/White Darf’ => ‘Harvey’, ‘Solution/Small Story’ =>
0)
thanks
Posted via http://www.ruby-forum.com/.
Try the Ruport mailing list if you need more help.
(http://groups.google.com/group/ruby-reports)
–Bob
Thanks bob,
rows_with does the job. great !
however, i have a field (Solution/Hardware) that i want to use in the
_with condition. the trick is that this column often contains a list of
material such as “PC123,PX0990,ER4554,ER554”, and I want the filter to
grab only line with “ER” in the string.
So basically, i am looking for the row_with parameter syntax to use
myfield like “ER”
instead of
myfield = “ER”
How can i achieve this ?
thanks
ps: i got my invitation to ruport forum still pending 
rows_with can also take a block, so you can define how you want the
column filtered (in this case I’d probably use a regular expression).
Something like:
t.rows_with(column_name) { |col| col ~= /regex/ }
Take a look at the Ruby API for regular expressions for more info.
wow… can’t wait to test that 
On Tue, Aug 3, 2010 at 4:59 AM, Fourchette Fourchette
[email protected] wrote:
myfield like “ER”
instead of
myfield = “ER”
How can i achieve this ?
rows_with can also take a block, so you can define how you want the
column filtered (in this case I’d probably use a regular expression).
Something like:
t.rows_with(column_name) { |col| col ~= /regex/ }
Take a look at the Ruby API for regular expressions for more info.