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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Jruby::Mapdb
2
2
 
3
- This is a jruby-only wrapper for MapDB (v0.9.5). MapDB is a fast key-value store java library.
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 "rubygems"
2
- require "rake"
3
- require "rake/testtask"
1
+ %w[rubygems rake rake/testtask].map &method(:require)
4
2
 
5
- desc "Run tests"
6
- Rake::TestTask.new "test" do |t|
7
- t.libs << "test"
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 = "jruby-mapdb"
6
+ spec.name = 'jruby-mapdb'
7
7
  spec.version = Jruby::Mapdb::VERSION
8
- spec.platform = "java"
9
- spec.authors = ["Christian MICHON"]
10
- spec.email = ["christian.michon@gmail.com"]
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 = "http://github.com/cmichon/jruby-mapdb"
14
- spec.license = "MIT"
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 = ["lib"]
18
+ spec.require_paths = ['lib']
19
19
  end
data/lib/jruby-mapdb.rb CHANGED
@@ -1,3 +1 @@
1
- (%w[java] + Dir['**/*.jar']).each { |jar| require jar }
2
-
3
- require 'jruby/mapdb'
1
+ (%w[java] + Dir['**/*.jar'] + %w[jruby/mapdb]).map &method(:require)
data/lib/jruby/mapdb.rb CHANGED
@@ -1,9 +1,10 @@
1
- require "jruby/mapdb/version"
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
- def clear
32
- @tree.clear
33
- end
34
- alias :[]= :encode
35
- alias :[] :decode
36
- alias :size :count
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
- attr_reader :mapdb, :trees, :type
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
- writeAheadLogDisable().
51
+ transactionDisable().
59
52
  make()
60
53
  end
61
54
  end
62
55
  def tree(treename)
63
- raise "Tree already defined" if @trees.include?(treename) || Object.const_defined?(treename)
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
@@ -1,5 +1,5 @@
1
1
  module Jruby
2
2
  module Mapdb
3
- VERSION = "0.9.6"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
Binary file
data/test/mapdb_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "test_helper"
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.trees
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
- mapdb = db.instance_variable_get(:@mapdb)
47
- mapdb.close
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
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
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
- version: 0.9.6
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
- date: 2013-09-25 00:00:00.000000000 Z
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
- files:
20
- - Gemfile
21
- - jruby-mapdb.gemspec
22
- - LICENSE-mapdb.txt
23
- - LICENSE.txt
24
- - Rakefile
25
- - README.md
26
- - lib/jruby-mapdb.rb
27
- - lib/mapdb-0.9.5.jar
28
- - lib/jruby/mapdb.rb
29
- - lib/jruby/mapdb/version.rb
30
- - test/mapdb_test.rb
31
- - test/test_helper.rb
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
- metadata: {}
36
- post_install_message:
39
+ licenses:
40
+ - MIT
41
+ post_install_message:
37
42
  rdoc_options: []
38
- require_paths:
39
- - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
41
- requirements:
42
- - - '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
45
- required_rubygems_version: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - '>='
48
- - !ruby/object:Gem::Version
49
- version: '0'
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
- rubyforge_project:
52
- rubygems_version: 2.0.3
53
- signing_key:
54
- specification_version: 4
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