Module: Persist::LMDBAdapter
- Includes:
- Object::TSVAdapter
- Defined in:
- lib/rbbt/persist/tsv/lmdb.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.open(path, write) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/rbbt/persist/tsv/lmdb.rb', line 7 def self.open(path, write) database = CONNECTIONS[path] ||= begin dir = File.dirname(File.(path)) file = File.basename(path) env = LMDB.new(dir, :mapsize => 1024 * 10000) database = env.database file, :create => write database end database.extend Persist::LMDBAdapter unless Persist::LMDBAdapter === database database.persistence_path ||= path database end |
Instance Method Details
#collect ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rbbt/persist/tsv/lmdb.rb', line 32 def collect res = [] cursor do |cursor| while pair = cursor.next res = if block_given? yield *pair else pair end end end res end |
#each ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/rbbt/persist/tsv/lmdb.rb', line 23 def each cursor do |cursor| while pair = cursor.next yield *pair end end self end |