Class: Jruby::Mapdb::DB

Inherits:
Object
  • Object
show all
Defined in:
lib/jruby/mapdb.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dbname = nil) ⇒ DB

Returns a new instance of DB.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/jruby/mapdb.rb', line 44

def initialize(dbname=nil)
  if dbname.nil?
    @type = :MemoryDB
    @trees = []
    @mapdb = Java::OrgMapdb::DBMaker.
      newMemoryDB().
      closeOnJvmShutdown().
      make()
  else
    @type = :FileDB
    @trees = []
    @mapdb = Java::OrgMapdb::DBMaker.
      newFileDB(Java::JavaIo::File.new("#{dbname}")).
      closeOnJvmShutdown().
      writeAheadLogDisable().
      make()
  end
end

Instance Attribute Details

#mapdbObject (readonly)

Returns the value of attribute mapdb.



43
44
45
# File 'lib/jruby/mapdb.rb', line 43

def mapdb
  @mapdb
end

#treesObject (readonly)

Returns the value of attribute trees.



43
44
45
# File 'lib/jruby/mapdb.rb', line 43

def trees
  @trees
end

#typeObject (readonly)

Returns the value of attribute type.



43
44
45
# File 'lib/jruby/mapdb.rb', line 43

def type
  @type
end

Instance Method Details

#tree(treename) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/jruby/mapdb.rb', line 62

def tree(treename)
  raise "Tree already defined" if @trees.include?(treename) || Object.const_defined?(treename)
  trees << treename
  Object.const_set treename, Class.new(Tree)
  Object.const_get(treename).instance_variable_set :@mapdb, @mapdb
  Object.const_get(treename).instance_variable_set :@tree, @mapdb.getTreeMap("#{treename}")
  Object.const_get treename
end