lib/rufus/tokyo/cabinet/table.rb
def []= (pk, h_or_a)

      pk = pk.to_s
      h_or_a = Rufus::Tokyo.h_or_a_to_s(h_or_a)

      m = Rufus::Tokyo::Map[h_or_a]

      r = lib.tab_put(@db, pk, Rufus::Tokyo.blen(pk), m.pointer)

      m.free

      r || raise_error # raising potential error after freeing map

      h_or_a
    end
def []= (pk, h_or_a)

      pk = pk.to_s
      h_or_a = Rufus::Tokyo.h_or_a_to_s(h_or_a)

      m = Rufus::Tokyo::Map[h_or_a]

      r = lib.tab_put(@db, pk, Rufus::Tokyo.blen(pk), m.pointer)

      m.free

      r || raise_error # raising potential error after freeing map

      h_or_a
    end
Inserts a record in the table db

   table['pk0'] = [ 'name', 'fred', 'age', '45' ]
   table['pk1'] = { 'name' => 'jeff', 'age' => '46' }

 Accepts both a hash or an array (expects the array to be of the
 form [ key, value, key, value, ... ] else it will raise
 an ArgumentError)

 Raises an error in case of failure.