jruby-mapdb 0.9.6-java → 1.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +22 -1
- data/Rakefile +4 -6
- data/jruby-mapdb.gemspec +7 -7
- data/lib/jruby-mapdb.rb +1 -3
- data/lib/jruby/mapdb.rb +16 -20
- data/lib/jruby/mapdb/version.rb +1 -1
- data/lib/mapdb-0.9.6.jar +0 -0
- data/test/mapdb_test.rb +6 -5
- data/test/test_helper.rb +2 -4
- metadata +52 -42
- checksums.yaml +0 -7
- data/lib/mapdb-0.9.5.jar +0 -0
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Jruby::Mapdb
|
2
2
|
|
3
|
-
This is a jruby-only wrapper for MapDB (v0.9.
|
3
|
+
This is a jruby-only wrapper for MapDB (v0.9.6). MapDB is a fast key-value store java library.
|
4
4
|
|
5
5
|
Using this gem, MapDB trees are seen as hashes in jruby, making persistence easy and cheap.
|
6
6
|
|
@@ -62,6 +62,27 @@ p People[1]
|
|
62
62
|
|
63
63
|
~~~
|
64
64
|
|
65
|
+
## Jruby::Mapdb::DB API
|
66
|
+
|
67
|
+
This API has been kept as simple as possible, compatible with Ruby Hash.
|
68
|
+
|
69
|
+
It is compatible with most Enumerable methods: each, find_all, select, reject, entries, etc...
|
70
|
+
|
71
|
+
~~~
|
72
|
+
|
73
|
+
#new create a MemoryDB.
|
74
|
+
#new(dbname) create a FileDB named dbname into current directory.
|
75
|
+
|
76
|
+
#tree(treename) create a MapDB treemap, which can be used with Jruby::Mapdb::Tree API.
|
77
|
+
|
78
|
+
#close close DB instance.
|
79
|
+
|
80
|
+
#closed? return true if DB instance is closed, false otherwise.
|
81
|
+
|
82
|
+
#compact compact the DB. To be used in dedicated/isolated script, not in main script.
|
83
|
+
|
84
|
+
~~~
|
85
|
+
|
65
86
|
## Jruby::Mapdb::Tree API
|
66
87
|
|
67
88
|
This API has been kept as simple as possible, compatible with Ruby Hash.
|
data/Rakefile
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require "rake"
|
3
|
-
require "rake/testtask"
|
1
|
+
%w[rubygems rake rake/testtask].map &method(:require)
|
4
2
|
|
5
|
-
desc
|
6
|
-
Rake::TestTask.new
|
7
|
-
t.libs <<
|
3
|
+
desc 'Run tests'
|
4
|
+
Rake::TestTask.new 'test' do |t|
|
5
|
+
t.libs << 'test'
|
8
6
|
t.test_files = FileList['test/*_test.rb']
|
9
7
|
t.verbose = true
|
10
8
|
end
|
data/jruby-mapdb.gemspec
CHANGED
@@ -3,17 +3,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
3
|
require 'jruby/mapdb/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
6
|
+
spec.name = 'jruby-mapdb'
|
7
7
|
spec.version = Jruby::Mapdb::VERSION
|
8
|
-
spec.platform =
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
8
|
+
spec.platform = 'java'
|
9
|
+
spec.authors = ['Christian MICHON']
|
10
|
+
spec.email = ['christian.michon@gmail.com']
|
11
11
|
spec.description = %q{MapDB wrapper for JRuby}
|
12
12
|
spec.summary = %q{MapDB wrapper}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'http://github.com/cmichon/jruby-mapdb'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = Dir['{**/*}']
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.require_paths = [
|
18
|
+
spec.require_paths = ['lib']
|
19
19
|
end
|
data/lib/jruby-mapdb.rb
CHANGED
data/lib/jruby/mapdb.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
1
|
+
%w[jruby/mapdb/version forwardable].map &method(:require)
|
2
2
|
|
3
3
|
module Jruby
|
4
4
|
module Mapdb
|
5
5
|
module ClassMethods
|
6
6
|
include Enumerable
|
7
|
+
extend Forwardable
|
7
8
|
def encode(key, value)
|
8
9
|
@tree.put key, Marshal.dump(value).to_java_bytes
|
9
10
|
end
|
@@ -15,58 +16,53 @@ module Jruby
|
|
15
16
|
def each
|
16
17
|
@tree.each_pair { |key,value| yield(key, Marshal.load(String.from_java_bytes(value))) }
|
17
18
|
end
|
18
|
-
def key?(key)
|
19
|
-
@tree.has_key? key
|
20
|
-
end
|
21
19
|
def keys
|
22
20
|
@tree.key_set.to_a
|
23
21
|
end
|
24
|
-
def count
|
25
|
-
@tree.size
|
26
|
-
end
|
27
22
|
def regexp(pattern)
|
28
23
|
re = Regexp.new "#{pattern}", Regexp::EXTENDED | Regexp::IGNORECASE
|
29
24
|
@tree.select{ |k,v| "#{k}" =~ re }.map(&:first)
|
30
25
|
end
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
alias :[]=
|
35
|
-
alias :[]
|
36
|
-
alias :
|
37
|
-
private
|
26
|
+
def_delegator :@tree, :clear, :clear
|
27
|
+
def_delegator :@tree, :has_key?, :key?
|
28
|
+
def_delegator :@tree, :count, :size
|
29
|
+
alias :[]= :encode
|
30
|
+
alias :[] :decode
|
31
|
+
alias :count :size
|
38
32
|
end
|
39
33
|
class Tree
|
40
34
|
extend ClassMethods
|
41
35
|
end
|
42
36
|
class DB
|
43
|
-
|
37
|
+
extend Forwardable
|
38
|
+
attr_reader :mapdb, :type
|
44
39
|
def initialize(dbname=nil)
|
45
40
|
if dbname.nil?
|
46
41
|
@type = :MemoryDB
|
47
|
-
@trees = []
|
48
42
|
@mapdb = Java::OrgMapdb::DBMaker.
|
49
43
|
newMemoryDB().
|
50
44
|
closeOnJvmShutdown().
|
51
45
|
make()
|
52
46
|
else
|
53
47
|
@type = :FileDB
|
54
|
-
@trees = []
|
55
48
|
@mapdb = Java::OrgMapdb::DBMaker.
|
56
49
|
newFileDB(Java::JavaIo::File.new("#{dbname}")).
|
57
50
|
closeOnJvmShutdown().
|
58
|
-
|
51
|
+
transactionDisable().
|
59
52
|
make()
|
60
53
|
end
|
61
54
|
end
|
62
55
|
def tree(treename)
|
63
|
-
raise "Tree already defined" if
|
64
|
-
trees << treename
|
56
|
+
raise "Tree '#{treename}' already defined" if Object.const_defined?(treename)
|
65
57
|
Object.const_set treename, Class.new(Tree)
|
66
58
|
Object.const_get(treename).instance_variable_set :@mapdb, @mapdb
|
67
59
|
Object.const_get(treename).instance_variable_set :@tree, @mapdb.getTreeMap("#{treename}")
|
68
60
|
Object.const_get treename
|
69
61
|
end
|
62
|
+
def trees
|
63
|
+
Hash[*(@mapdb.getAll.map(&:first).map(&:to_sym).zip(@mapdb.getAll.map(&:last).map(&:size)).flatten)]
|
64
|
+
end
|
65
|
+
def_delegators :@mapdb, :close, :closed?, :compact
|
70
66
|
end
|
71
67
|
end
|
72
68
|
end
|
data/lib/jruby/mapdb/version.rb
CHANGED
data/lib/mapdb-0.9.6.jar
ADDED
Binary file
|
data/test/mapdb_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
module MyTest
|
4
4
|
def runner(type)
|
@@ -9,7 +9,7 @@ module MyTest
|
|
9
9
|
db.tree :People
|
10
10
|
assert People.is_a?(Enumerable)
|
11
11
|
assert_equal Jruby::Mapdb::Tree, People.superclass
|
12
|
-
assert_equal [:People], db.
|
12
|
+
assert_equal [:People], db.instance_variable_get(:@mapdb).get_all.map(&:first).map(&:to_sym)
|
13
13
|
assert_equal [], People.entries
|
14
14
|
|
15
15
|
People[0] = 'CM'
|
@@ -35,6 +35,8 @@ module MyTest
|
|
35
35
|
assert_instance_of Hash, People[1][:features]
|
36
36
|
assert People[1][:features][:developer]
|
37
37
|
|
38
|
+
assert_equal ({:People=>2}),db.trees
|
39
|
+
|
38
40
|
People.clear
|
39
41
|
assert_equal 0, People.count
|
40
42
|
|
@@ -43,9 +45,8 @@ module MyTest
|
|
43
45
|
end
|
44
46
|
Object.send(:remove_const, :People)
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
assert mapdb.closed?
|
48
|
+
db.close
|
49
|
+
assert db.closed?
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
data/test/test_helper.rb
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
%w[rubygems tempfile jruby-mapdb].map &method(:require)
|
4
|
-
require 'test/unit'
|
1
|
+
$: << File.expand_path('../lib', __FILE__)
|
2
|
+
%w[rubygems test/unit tempfile jruby-mapdb].map &method(:require)
|
metadata
CHANGED
@@ -1,56 +1,66 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: jruby-mapdb
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
5
6
|
platform: java
|
6
|
-
authors:
|
7
|
-
- Christian MICHON
|
8
|
-
autorequire:
|
7
|
+
authors:
|
8
|
+
- Christian MICHON
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
+
|
13
|
+
date: 2013-09-30 00:00:00 Z
|
12
14
|
dependencies: []
|
15
|
+
|
13
16
|
description: MapDB wrapper for JRuby
|
14
|
-
email:
|
15
|
-
- christian.michon@gmail.com
|
17
|
+
email:
|
18
|
+
- christian.michon@gmail.com
|
16
19
|
executables: []
|
20
|
+
|
17
21
|
extensions: []
|
22
|
+
|
18
23
|
extra_rdoc_files: []
|
19
|
-
|
20
|
-
|
21
|
-
-
|
22
|
-
-
|
23
|
-
- LICENSE.txt
|
24
|
-
-
|
25
|
-
-
|
26
|
-
-
|
27
|
-
- lib/mapdb
|
28
|
-
- lib/
|
29
|
-
- lib/jruby/mapdb
|
30
|
-
-
|
31
|
-
- test/
|
24
|
+
|
25
|
+
files:
|
26
|
+
- Gemfile
|
27
|
+
- jruby-mapdb.gemspec
|
28
|
+
- LICENSE-mapdb.txt
|
29
|
+
- LICENSE.txt
|
30
|
+
- Rakefile
|
31
|
+
- README.md
|
32
|
+
- lib/jruby-mapdb.rb
|
33
|
+
- lib/mapdb-0.9.6.jar
|
34
|
+
- lib/jruby/mapdb.rb
|
35
|
+
- lib/jruby/mapdb/version.rb
|
36
|
+
- test/mapdb_test.rb
|
37
|
+
- test/test_helper.rb
|
32
38
|
homepage: http://github.com/cmichon/jruby-mapdb
|
33
|
-
licenses:
|
34
|
-
- MIT
|
35
|
-
|
36
|
-
post_install_message:
|
39
|
+
licenses:
|
40
|
+
- MIT
|
41
|
+
post_install_message:
|
37
42
|
rdoc_options: []
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
43
|
+
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: "0"
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
50
58
|
requirements: []
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
59
|
+
|
60
|
+
rubyforge_project:
|
61
|
+
rubygems_version: 1.8.24
|
62
|
+
signing_key:
|
63
|
+
specification_version: 3
|
55
64
|
summary: MapDB wrapper
|
56
65
|
test_files: []
|
66
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: cbd28983814fe1f29640826969cba61f7ae13a81
|
4
|
-
data.tar.gz: 1170604b2d40a0643f813e4898195a86697aba33
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 781523f4f5672147184b3274257b5db87cb4d0f3dfd5d99403481d2650937ac62dcada5cee0034d7ccef5812cb0d2cffac0349c072103bff7c94a6a8292bccfd
|
7
|
-
data.tar.gz: ade71e1c8f299776edfd7d776530cc36b2ed2e78861dd8762b5176e6eecc91560f7e3c5cc13966f573a13f8505a7db109aaba072396cf24553b58a29e9bd7d21
|
data/lib/mapdb-0.9.5.jar
DELETED
Binary file
|