From: Jamey Cribbs Date: 2008-03-26T12:39:12+09:00 Subject: Re: Kirbybase problem Glad I could help! Jamey On Tue, Mar 25, 2008 at 2:48 PM, Tom Cloyd wrote: > Jamey, > Thanks so much for your prompt and helpful reply. I KNEW it has to be > something very basic which I didn't understand. I appear to have misread > the documentation. To wit: > > plane_tbl = db.create_table(:plane, :name, :String, :country, :String, > :role, :String, :speed, :Integer, :range, :Integer, :began_service, :Date, > :still_flying, :Boolean) > > In this code, I saw 'plane_tbl' as the probable table name (although I > realize that most immediately it is something else) - assuming that this > would be used by KirbyBase to open a file of that name. A complete misread. > > :plane, :name, :String, > > This appeared to be a listing of two variable names (table columns), > followed by their type. Wrong! > > OK, so now I'm headed the right direction. > > I've been wanting for quite some time to work with KirbyBase, and I > think I finally have a real need for it. Looking through the very nice > documentation you have prepared, I feel real admiration for the work you > have done. This all looks awfully well thought out and executed. And I'm > going to study the code to further my learning in Ruby. Thanks for all > your work. > > I will (probably) be using this to manage a database of news item > summaries for stories with mental health topics, which database will be > used to generate html pages for my professional website. I wanted to be > able to edit directly in the db, if possible, and KB allows me to do > this. Terrific. > > Thanks again for your speedy help. Much appreciated. I'm very eager to > dive into KirbyBase. > > Tom > > > > Jamey Cribbs wrote: > > Tom, you need to specify the table name when creating a table, i.e.: > > > > newsitems = db.create_table(:news_items, :datestr, :String) > > > > > > The symbol above, :news_items, will cause KB to create the table in a > > physical file called news_items.tbl. > > > > > > HTH, > > > > Jamey > > > > > > > > On Tue, Mar 25, 2008 at 4:34 AM, Tom Cloyd wrote: > > > >> Jamey, > >> > >> After a very long wait, I'm finally diving into the Kirbybase gem. > >> > >> My problem is that I'm trying to create a table, following very > >> carefully the example given in the quite nice documentation (!), and > >> it's not working for me, and I cannot see the problem. The code > >> (stripped to essentials): > >> > >> def main > >> > >> %w(rubygems logger kirbybase yaml).each{ |lib| require lib } > >> db = KirbyBase.new(:local, nil, nil, './', '.tbl', './', true) # > >> requests that table indexes be created NOT when table is r > >> ead in but when it is first referenced > >> > >> # create tables > >> newsitems = db.create_table( :datestr, {:DataType=>:String, > >> :Required=>true, :Index=>1}) > >> > >> # insert some data <= *interpreter never got to this* > >> newsitems.insert( '2008.03.25a', 'First Title', 'First URL', false, > >> 'This is an extended summary of the news item.' ) > >> newsitems.insert( '2008.03.25b', 'Second Title', 'Second URL', > >> false, 'This is another extended summary of the > >> news item.' ) > >> > >> end > >> > >> This produced: > >> > >> $ ruby kirbyaml.rb > >> /var/lib/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:566:in > >> `create_table': Must have a field type for each field name (RuntimeError) > >> from kirbyaml.rb:31:in `main' > >> from kirbyaml.rb:42 > >> > >> Originally, I had several variables in the table, but reduced this to > >> one to try to find the error, and failed. I simply don't see it. > >> > >> Reduced further, to this - > >> > >> newsitems = db.create_table( :datestr, :String ) > >> > >> the same error is produced. > >> > >> Can anyone give me a clue as to the problem? > >> > >> Thanks, > >> > >> Tom > >> > >> -- > >> > >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >> Tom Cloyd > >> Bellingham, Washington, U.S.A: (360) 920-1226 > >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >> > >> > >> > >> > >> > > > > > > > > -- > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Tom Cloyd, MS MA, LMHC > Private practice Psychotherapist > > Bellingham, Washington, U.S.A: (360) 920-1226 > > > << tc@tomcloyd.com >> (email) > << TomCloyd.com >> (website & psychotherapy weblog) > << sleightmind.wordpress.com >> (mental health issues weblog) > << directpathdesign.com >> (web site design & consultation) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > >