Module: OklahomaMixer

Defined in:
lib/oklahoma_mixer.rb,
lib/oklahoma_mixer/error.rb,
lib/oklahoma_mixer/query.rb,
lib/oklahoma_mixer/cursor.rb,
lib/oklahoma_mixer/query/c.rb,
lib/oklahoma_mixer/hash_map.rb,
lib/oklahoma_mixer/cursor/c.rb,
lib/oklahoma_mixer/utilities.rb,
lib/oklahoma_mixer/array_list.rb,
lib/oklahoma_mixer/hash_map/c.rb,
lib/oklahoma_mixer/array_list/c.rb,
lib/oklahoma_mixer/hash_database.rb,
lib/oklahoma_mixer/table_database.rb,
lib/oklahoma_mixer/hash_database/c.rb,
lib/oklahoma_mixer/b_tree_database.rb,
lib/oklahoma_mixer/table_database/c.rb,
lib/oklahoma_mixer/b_tree_database/c.rb,
lib/oklahoma_mixer/extensible_string.rb,
lib/oklahoma_mixer/extensible_string/c.rb,
lib/oklahoma_mixer/fixed_length_database.rb,
lib/oklahoma_mixer/fixed_length_database/c.rb

Defined Under Namespace

Modules: Error, Utilities Classes: ArrayList, BTreeDatabase, Cursor, ExtensibleString, FixedLengthDatabase, HashDatabase, HashMap, Query, TableDatabase

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Class Method Details

.open(path, *args) ⇒ Object


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/oklahoma_mixer.rb', line 9

def self.open(path, *args)
  db_class = case File.extname(path).downcase
             when ".tch" then HashDatabase
             when ".tcb" then BTreeDatabase
             when ".tcf" then FixedLengthDatabase
             when ".tct" then TableDatabase
             else             fail ArgumentError, "unsupported database type"
             end
  db       = db_class.new(path, *args)
  if block_given?
    begin
      yield db
    ensure
      db.close
    end
  else
    db
  end
end