On Feb 6, 2009, at 8:32 AM, Mmcolli00 Mom wrote: > Can this be done with Ruby? (this may be a shot in the dark) Anything can be done with Ruby. ;) > Say you have a text file with a lot of data and you want to group > all of > your data by a specific value. Is there a way to code something in > ruby > similar to a query that you would create using sql. Can this even be > done using Ruby? And if so, is there a library that you can refer me > to? > If not, do you know any alternative ways? Thanks, MC I'll show some pure Ruby code below that seems to do what you want, but if you really want a query language you have several options. Personally, I would use the Amalgalite gem to get SQLite. You would then just read the data and write it into a database. You can then query it in anyway you like. > example of text: > > auto, model > car, honda > truck, chevy > car, nissan > truck, toyota > truck, ford > > > how i'd like it to look: > > car, honda, nissan, > truck, chevy, toyota, ford Here's some code that does that: #!/usr/bin/env ruby -wKU headers = DATA.gets.strip.split(/,\s*/) related = { } DATA.each do |row| fields = Hash[*headers.zip(row.strip.split(/,\s*/)).flatten] (related[fields["auto"]] ||= [ ]) << fields["model"] end related.keys.sort.each do |key| puts(([key] + related[key]).join(", ")) end __END__ auto, model car, honda truck, chevy car, nissan truck, toyota truck, ford Hope it helps. James Edward Gray II