jruby-mapdb 0.9.5-java → 0.9.6-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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cbd28983814fe1f29640826969cba61f7ae13a81
4
+ data.tar.gz: 1170604b2d40a0643f813e4898195a86697aba33
5
+ SHA512:
6
+ metadata.gz: 781523f4f5672147184b3274257b5db87cb4d0f3dfd5d99403481d2650937ac62dcada5cee0034d7ccef5812cb0d2cffac0349c072103bff7c94a6a8292bccfd
7
+ data.tar.gz: ade71e1c8f299776edfd7d776530cc36b2ed2e78861dd8762b5176e6eecc91560f7e3c5cc13966f573a13f8505a7db109aaba072396cf24553b58a29e9bd7d21
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Jruby::Mapdb
2
2
 
3
- This is a jruby-only wrapper for MapDB. MapDB is a fast key-value store java library.
3
+ This is a jruby-only wrapper for MapDB (v0.9.5). 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
 
@@ -83,18 +83,22 @@ It is compatible with most Enumerable methods: each, find_all, select, reject, e
83
83
 
84
84
  #regexp(pattern) returns array of matched keys with pattern (extended + ignorecase)
85
85
 
86
+ #clear empty tree (remove all previously stored keys and values)
87
+
86
88
  ~~~
87
89
 
88
90
  ## Testing
89
91
 
90
- Testing is done with a single file 'test.rb' on top of this gem:
91
- * a hack purely based on Test::Unit::TestCase and Unit::Test::Assertions
92
- * test framework dependency removed
92
+ Testing is done using Test::Unit, and has been verified on jruby 1.6.8, 1.7.4, 1.7.5dev in both 1.8 and 1.9 modes.
93
93
 
94
94
  ~~~
95
- $ jruby test.rb
95
+ $ rake
96
96
  ~~~
97
97
 
98
+ ## Contributors
99
+
100
+ * fntzr (test refactoring)
101
+
98
102
  ## Contributing
99
103
 
100
104
  1. Fork it
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require "rubygems"
2
+ require "rake"
3
+ require "rake/testtask"
4
+
5
+ desc "Run tests"
6
+ Rake::TestTask.new "test" do |t|
7
+ t.libs << "test"
8
+ t.test_files = FileList['test/*_test.rb']
9
+ t.verbose = true
10
+ end
11
+
12
+ task :default => 'test'
@@ -1,5 +1,5 @@
1
1
  module Jruby
2
2
  module Mapdb
3
- VERSION = "0.9.5"
3
+ VERSION = "0.9.6"
4
4
  end
5
5
  end
data/lib/jruby/mapdb.rb CHANGED
@@ -28,6 +28,9 @@ module Jruby
28
28
  re = Regexp.new "#{pattern}", Regexp::EXTENDED | Regexp::IGNORECASE
29
29
  @tree.select{ |k,v| "#{k}" =~ re }.map(&:first)
30
30
  end
31
+ def clear
32
+ @tree.clear
33
+ end
31
34
  alias :[]= :encode
32
35
  alias :[] :decode
33
36
  alias :size :count
@@ -62,6 +65,7 @@ module Jruby
62
65
  Object.const_set treename, Class.new(Tree)
63
66
  Object.const_get(treename).instance_variable_set :@mapdb, @mapdb
64
67
  Object.const_get(treename).instance_variable_set :@tree, @mapdb.getTreeMap("#{treename}")
68
+ Object.const_get treename
65
69
  end
66
70
  end
67
71
  end
@@ -0,0 +1,73 @@
1
+ require "test_helper"
2
+
3
+ module MyTest
4
+ def runner(type)
5
+ db = @db
6
+ assert_instance_of Jruby::Mapdb::DB, db
7
+ assert_equal type, db.type
8
+
9
+ db.tree :People
10
+ assert People.is_a?(Enumerable)
11
+ assert_equal Jruby::Mapdb::Tree, People.superclass
12
+ assert_equal [:People], db.trees
13
+ assert_equal [], People.entries
14
+
15
+ People[0] = 'CM'
16
+ People[1] = {
17
+ :name => 'CM',
18
+ :features => {
19
+ :developer => true
20
+ }
21
+ }
22
+
23
+ assert People.key?(0)
24
+ assert People.key?(1)
25
+ assert_equal [1], People.regexp('^1$')
26
+ assert_equal 2, People.size
27
+ assert_equal 2, People.count
28
+ assert_equal [0,1], People.keys
29
+
30
+ assert_instance_of String, People[0]
31
+ assert_equal 'CM', People[0]
32
+
33
+ assert_instance_of Hash, People[1]
34
+ assert_equal 'CM', People[1][:name]
35
+ assert_instance_of Hash, People[1][:features]
36
+ assert People[1][:features][:developer]
37
+
38
+ People.clear
39
+ assert_equal 0, People.count
40
+
41
+ assert_raise RuntimeError do
42
+ db.tree :People
43
+ end
44
+ Object.send(:remove_const, :People)
45
+
46
+ mapdb = db.instance_variable_get(:@mapdb)
47
+ mapdb.close
48
+ assert mapdb.closed?
49
+ end
50
+ end
51
+
52
+ class MemoryDBTest < Test::Unit::TestCase
53
+ include MyTest
54
+
55
+ def test_memory_db
56
+ @db = Jruby::Mapdb::DB.new
57
+ runner(:MemoryDB)
58
+ end
59
+ end
60
+
61
+ class FileDBTest < Test::Unit::TestCase
62
+ include MyTest
63
+ def setup
64
+ @f = Tempfile.new('testdb')
65
+ end
66
+ def teardown
67
+ File.delete(@f.path + '.p')
68
+ end
69
+ def test_file_db
70
+ @db = Jruby::Mapdb::DB.new(@f.path)
71
+ runner(:FileDB)
72
+ end
73
+ end
@@ -0,0 +1,4 @@
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'
metadata CHANGED
@@ -1,63 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jruby-mapdb
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.6
6
5
  platform: java
7
- authors:
8
- - Christian MICHON
9
- autorequire:
6
+ authors:
7
+ - Christian MICHON
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2013-09-24 00:00:00 Z
11
+ date: 2013-09-25 00:00:00.000000000 Z
14
12
  dependencies: []
15
-
16
13
  description: MapDB wrapper for JRuby
17
- email:
18
- - christian.michon@gmail.com
14
+ email:
15
+ - christian.michon@gmail.com
19
16
  executables: []
20
-
21
17
  extensions: []
22
-
23
18
  extra_rdoc_files: []
24
-
25
- files:
26
- - jruby-mapdb.gemspec
27
- - LICENSE-mapdb.txt
28
- - LICENSE.txt
29
- - README.md
30
- - test.rb
31
- - lib/jruby-mapdb.rb
32
- - lib/mapdb-0.9.5.jar
33
- - lib/jruby/mapdb.rb
34
- - lib/jruby/mapdb/version.rb
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
35
32
  homepage: http://github.com/cmichon/jruby-mapdb
36
- licenses:
37
- - MIT
38
- post_install_message:
33
+ licenses:
34
+ - MIT
35
+ metadata: {}
36
+ post_install_message:
39
37
  rdoc_options: []
40
-
41
- require_paths:
42
- - lib
43
- required_ruby_version: !ruby/object:Gem::Requirement
44
- none: false
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: "0"
49
- required_rubygems_version: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: "0"
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'
55
50
  requirements: []
56
-
57
- rubyforge_project:
58
- rubygems_version: 1.8.24
59
- signing_key:
60
- specification_version: 3
51
+ rubyforge_project:
52
+ rubygems_version: 2.0.3
53
+ signing_key:
54
+ specification_version: 4
61
55
  summary: MapDB wrapper
62
56
  test_files: []
63
-
data/test.rb DELETED
@@ -1,68 +0,0 @@
1
- require 'test/unit'
2
-
3
- class TDD < Test::Unit::TestCase
4
- def default_test
5
- eval DATA.read
6
- end
7
- end
8
-
9
- __END__
10
-
11
- lib = File.expand_path('../lib', __FILE__)
12
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
13
-
14
- %w[rubygems tempfile jruby-mapdb].map &method(:require)
15
-
16
- f = Tempfile.new('testdb')
17
-
18
- types = [ :MemoryDB, :FileDB ]
19
-
20
- [ Jruby::Mapdb::DB.new,
21
- Jruby::Mapdb::DB.new(f.path)
22
- ].each_with_index do |db,i|
23
- assert_instance_of Jruby::Mapdb::DB, db
24
- assert_equal types[i], db.type
25
-
26
- db.tree :People
27
- assert People.is_a?(Enumerable)
28
- assert_equal Jruby::Mapdb::Tree, People.superclass
29
- assert_equal [:People], db.trees
30
- assert_equal [], People.entries
31
-
32
- People[0] = 'CM'
33
- People[1] = {
34
- :name => 'CM',
35
- :features => {
36
- :developer => true
37
- }
38
- }
39
-
40
- assert People.key?(0)
41
- assert People.key?(1)
42
- assert_equal [1], People.regexp('^1$')
43
- assert_equal 2, People.size
44
- assert_equal 2, People.count
45
- assert_equal [0,1], People.keys
46
-
47
- assert_instance_of String, People[0]
48
- assert_equal 'CM', People[0]
49
-
50
- assert_instance_of Hash, People[1]
51
- assert_equal 'CM', People[1][:name]
52
- assert_instance_of Hash, People[1][:features]
53
- assert People[1][:features][:developer]
54
-
55
- assert_raise RuntimeError do
56
- db.tree :People
57
- end
58
- Object.send(:remove_const, :People)
59
-
60
- mapdb = db.instance_variable_get(:@mapdb)
61
- mapdb.close
62
- assert mapdb.closed?
63
-
64
- if i == 1
65
- File.delete(f.path + '.p')
66
- f.unlink
67
- end
68
- end