libcdb-ruby 0.0.1-x86-mingw32
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/.rspec +1 -0
- data/COPYING +663 -0
- data/ChangeLog +5 -0
- data/README +96 -0
- data/Rakefile +30 -0
- data/TODO +4 -0
- data/ext/libcdb/extconf.rb +11 -0
- data/ext/libcdb/libcdb.c +16 -0
- data/ext/libcdb/libcdb_ruby.def +8 -0
- data/ext/libcdb/ruby_cdb.c +15 -0
- data/ext/libcdb/ruby_cdb.h +13 -0
- data/ext/libcdb/ruby_cdb_reader.c +677 -0
- data/ext/libcdb/ruby_cdb_reader.h +30 -0
- data/ext/libcdb/ruby_cdb_writer.c +301 -0
- data/ext/libcdb/ruby_cdb_writer.h +16 -0
- data/ext/libcdb/ruby_libcdb.h +27 -0
- data/lib/cdb.rb +2 -0
- data/lib/libcdb-ruby.rb +1 -0
- data/lib/libcdb.rb +256 -0
- data/lib/libcdb/1.8/libcdb_ruby.so +0 -0
- data/lib/libcdb/1.9/libcdb_ruby.so +0 -0
- data/lib/libcdb/version.rb +31 -0
- data/spec/libcdb/reader_spec.rb +142 -0
- data/spec/libcdb/writer_spec.rb +34 -0
- data/spec/spec_helper.rb +21 -0
- metadata +102 -0
Binary file
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module LibCDB
|
2
|
+
|
3
|
+
class CDB
|
4
|
+
|
5
|
+
module Version
|
6
|
+
|
7
|
+
MAJOR = 0
|
8
|
+
MINOR = 0
|
9
|
+
TINY = 1
|
10
|
+
|
11
|
+
class << self
|
12
|
+
|
13
|
+
# Returns array representation.
|
14
|
+
def to_a
|
15
|
+
[MAJOR, MINOR, TINY]
|
16
|
+
end
|
17
|
+
|
18
|
+
# Short-cut for version string.
|
19
|
+
def to_s
|
20
|
+
to_a.join('.')
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
VERSION = Version.to_s
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
describe LibCDB::CDB::Reader do
|
2
|
+
|
3
|
+
before :all do
|
4
|
+
@temp = tempfile
|
5
|
+
|
6
|
+
db = LibCDB::CDB::Writer.new(@temp.to_io)
|
7
|
+
TEST_DATA.each { |k, v| v.each { |w| db.store(k, w) } }
|
8
|
+
db.close
|
9
|
+
end
|
10
|
+
|
11
|
+
after :all do
|
12
|
+
@temp.unlink
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#initialize" do
|
16
|
+
|
17
|
+
it "should not accept integers" do
|
18
|
+
lambda { LibCDB::CDB::Reader.new(12345) }.should raise_error(TypeError)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should not accept pipes" do
|
22
|
+
lambda { LibCDB::CDB::Reader.new(STDIN) }.should raise_error(SystemCallError)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "empty" do
|
28
|
+
|
29
|
+
before :all do
|
30
|
+
@empt = tempfile
|
31
|
+
LibCDB::CDB::Writer.new(@empt.to_io).close
|
32
|
+
end
|
33
|
+
|
34
|
+
after :all do
|
35
|
+
@empt.unlink
|
36
|
+
end
|
37
|
+
|
38
|
+
before :each do
|
39
|
+
@db = LibCDB::CDB::Reader.new(File.open(@empt.path))
|
40
|
+
end
|
41
|
+
|
42
|
+
after :each do
|
43
|
+
@db.close
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should know that it's not closed" do
|
47
|
+
@db.should_not be_closed
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should know that it's empty" do
|
51
|
+
@db.should be_empty
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should know its size" do
|
55
|
+
@db.size.should == 0
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should know if it doesn't have a key" do
|
59
|
+
@db.should_not have_key('key3')
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should know if it doesn't have a value" do
|
63
|
+
@db.should_not have_value('value3.2')
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "non-empty" do
|
69
|
+
|
70
|
+
before :each do
|
71
|
+
@db = LibCDB::CDB::Reader.new(File.open(@temp.path))
|
72
|
+
end
|
73
|
+
|
74
|
+
after :each do
|
75
|
+
@db.close
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should know that it's not closed" do
|
79
|
+
@db.should_not be_closed
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should know that it's not empty" do
|
83
|
+
@db.should_not be_empty
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should know its size" do
|
87
|
+
@db.size.should == 11
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should know if it has a key" do
|
91
|
+
@db.should have_key('key3')
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should know if it doesn't have a key" do
|
95
|
+
@db.should_not have_key('key33')
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should know if it has a value" do
|
99
|
+
@db.should have_value('value3.2')
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should know if it doesn't have a value" do
|
103
|
+
@db.should_not have_value('value33.22')
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should get a single value" do
|
107
|
+
@db['key1'].should == 'value1.1'
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should not get non-existent value" do
|
111
|
+
@db['key33'].should be_nil
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should get each value" do
|
115
|
+
TEST_DATA.each { |k, o|
|
116
|
+
r = []
|
117
|
+
@db.each(k) { |v| r << v }
|
118
|
+
r.should == o
|
119
|
+
}
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should get all values" do
|
123
|
+
TEST_DATA.each { |k, o|
|
124
|
+
@db.fetch(k).should == o
|
125
|
+
}
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should get last value" do
|
129
|
+
@db.fetch_last('key10').should == 'value10.10'
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should find the key for a value" do
|
133
|
+
@db.key('value3.2').should == 'key3'
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should not find the key for a non-existent value" do
|
137
|
+
@db.key('value33.22').should be_nil
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
describe LibCDB::CDB::Writer do
|
2
|
+
|
3
|
+
describe "#initialize" do
|
4
|
+
|
5
|
+
it "should not accept strings" do
|
6
|
+
lambda { LibCDB::CDB::Writer.new('test') }.should raise_error(TypeError)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not accept pipes" do
|
10
|
+
lambda { LibCDB::CDB::Writer.new(STDOUT) }.should raise_error(SystemCallError)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#add" do
|
16
|
+
|
17
|
+
before :each do
|
18
|
+
@temp = tempfile
|
19
|
+
@db = LibCDB::CDB::Writer.new(@temp.to_io)
|
20
|
+
end
|
21
|
+
|
22
|
+
after :each do
|
23
|
+
@temp.unlink
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should add data" do
|
27
|
+
TEST_DATA.each { |k, v| v.each { |w| @db.add(k, w) } }
|
28
|
+
@db.close
|
29
|
+
@db.should be_closed
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
$:.unshift('lib') unless $:.first == 'lib'
|
2
|
+
|
3
|
+
require 'libcdb'
|
4
|
+
require 'tempfile'
|
5
|
+
|
6
|
+
RSpec.configure { |config|
|
7
|
+
config.include(Module.new {
|
8
|
+
TEST_DATA = {}
|
9
|
+
|
10
|
+
1.upto(10) { |i|
|
11
|
+
val = TEST_DATA[key = "key#{i}"] = []
|
12
|
+
1.upto(i) { |j| val << "value#{i}.#{j}" }
|
13
|
+
}
|
14
|
+
|
15
|
+
TEST_DATA['a' * 1024] = Array('b' * 1024 ** 2)
|
16
|
+
|
17
|
+
def tempfile
|
18
|
+
Tempfile.open("libcdb_spec_#{object_id}_temp")
|
19
|
+
end
|
20
|
+
})
|
21
|
+
}
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: libcdb-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: x86-mingw32
|
12
|
+
authors:
|
13
|
+
- Jens Wille
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-01-18 00:00:00 Z
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: Ruby bindings for CDB Constant Databases.
|
22
|
+
email: jens.wille@uni-koeln.de
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
28
|
+
- README
|
29
|
+
- COPYING
|
30
|
+
- ChangeLog
|
31
|
+
- ext/libcdb/libcdb.c
|
32
|
+
- ext/libcdb/ruby_cdb.c
|
33
|
+
- ext/libcdb/ruby_cdb_reader.c
|
34
|
+
- ext/libcdb/ruby_cdb_writer.c
|
35
|
+
files:
|
36
|
+
- lib/libcdb-ruby.rb
|
37
|
+
- lib/libcdb/version.rb
|
38
|
+
- lib/cdb.rb
|
39
|
+
- lib/libcdb.rb
|
40
|
+
- ChangeLog
|
41
|
+
- COPYING
|
42
|
+
- README
|
43
|
+
- Rakefile
|
44
|
+
- TODO
|
45
|
+
- ext/libcdb/ruby_cdb_writer.h
|
46
|
+
- ext/libcdb/ruby_cdb.c
|
47
|
+
- ext/libcdb/ruby_libcdb.h
|
48
|
+
- ext/libcdb/ruby_cdb_reader.c
|
49
|
+
- ext/libcdb/ruby_cdb.h
|
50
|
+
- ext/libcdb/ruby_cdb_writer.c
|
51
|
+
- ext/libcdb/extconf.rb
|
52
|
+
- ext/libcdb/ruby_cdb_reader.h
|
53
|
+
- ext/libcdb/libcdb.c
|
54
|
+
- ext/libcdb/libcdb_ruby.def
|
55
|
+
- spec/libcdb/writer_spec.rb
|
56
|
+
- spec/libcdb/reader_spec.rb
|
57
|
+
- spec/spec_helper.rb
|
58
|
+
- .rspec
|
59
|
+
- lib/libcdb/1.8/libcdb_ruby.so
|
60
|
+
- lib/libcdb/1.9/libcdb_ruby.so
|
61
|
+
homepage: http://github.com/blackwinter/libcdb-ruby
|
62
|
+
licenses: []
|
63
|
+
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options:
|
66
|
+
- --charset
|
67
|
+
- UTF-8
|
68
|
+
- --title
|
69
|
+
- libcdb-ruby Application documentation (v0.0.1)
|
70
|
+
- --main
|
71
|
+
- README
|
72
|
+
- --all
|
73
|
+
- --line-numbers
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 3
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
version: "0"
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
requirements: []
|
95
|
+
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 1.8.15
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: Ruby bindings for CDB Constant Databases.
|
101
|
+
test_files: []
|
102
|
+
|