Jamey Cribbs wrote:
> You can download it from:  http://rubyforge.org/projects/mongoose/
>
> *What's New*
>
> Well, there's a lot of new stuff in this release, and some old stuff put
> back in, as well.  John Long pointed out that the use of #instance_eval
> in the 0.2.0 release would be problematic because the query block would
> no longer have access to instance variables from the calling object.
> After looking at this all weekend and getting feedback from a number of
> people, I have decided to go back to the previous query syntax whereby
> you specify the table class as a block parameter and qualify each column
> name with the table class name.   So, it's back to:
>
>     Dog.find { |dog| dog.breed == "German Shepard" }
>
> instead of:
>
>     Dog.find { breed == "German Shepard" }
>
> Besides this one step back, there have been a lot of steps forward.  The
> query engine code is totally re-written, thanks to input and code ideas
> from Logan Capaldo.  I have added a bunch of methods from ActiveRecord,
> including dynamic finder methods like Table.find_by_user_name.
> Additionally, I have added Table.import and Table.export methods that
> allow you to get data in and out of a table via CSV.  So, grab the
> latest release and let me know what you think.
>
> Documentation is still light, so the best way to learn is to look in the
> "example" directory and at the unit tests.
>
> *What is Mongoose*
>
> Mongoose is a database management system written in Ruby.  It has an
> ActiveRecord-like interface, uses Skiplists for its indexing, and
> Marshal for its data serialization.  I named it Mongoose, because, like
> Rudyard Kipling's Rikki-Tikki-Tavi, my aim is for it to be small, quick,
> and friendly.
>
> You can find rudimentary documentation in the README file and some
> sample scripts in the example directory.
>
> Jamey Cribbs
> jcribbs / netpromi.com

Got another question for you, if you don't mind sparing a couple
minutes.  Thanks in advance for taking the time.

What would be the best/easiest way to accomplish the intent of the
following code?

require 'mongoose'

# Create a class for your table.
class Thing < Mongoose::Table
end

# Create a database instance.
db = Mongoose::Database.new

# Create new table.  Notice how you specify whether a column is indexed
or not.
db.create_table(:thing) do |tbl|
  tbl.add_column(:foo,:dunno_what_to_put)
end

# Add a record.  You can also use #create.
rec = Thing.new
rec.foo = (1..100).to_a
rec.save

puts Thing.find.first.foo.size    #100

# Close database.  This will write the indexes out to disk so they can
be
# initialized quickly next time.
db.close