native_btree 0.1.0.alpha1 → 0.2.0
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 +4 -4
- data/CHANGELOG.md +28 -0
- data/CMakeLists.txt +54 -0
- data/Gemfile +18 -0
- data/LICENSE +165 -0
- data/README.md +67 -0
- data/Rakefile +48 -0
- data/ext/native_btree/CMakeLists.txt +38 -0
- data/ext/native_btree/comparator.c +13 -0
- data/ext/native_btree/constructor.c +19 -0
- data/ext/native_btree/conversion.c +54 -0
- data/ext/native_btree/extconf_cmake.rb +15 -0
- data/ext/native_btree/include/common.h +21 -0
- data/ext/native_btree/include/comparator.h +4 -0
- data/ext/native_btree/include/constructor.h +11 -0
- data/ext/native_btree/include/conversion.h +8 -0
- data/ext/native_btree/include/instance.h +22 -0
- data/ext/native_btree/include/iterators.h +5 -0
- data/ext/native_btree/include/native_btree.h +5 -47
- data/ext/native_btree/include/rbtree_type.h +22 -0
- data/ext/native_btree/instance.c +126 -0
- data/ext/native_btree/iterators.c +26 -0
- data/ext/native_btree/native_btree.c +20 -22
- data/ext/native_btree/rbtree_type.c +102 -0
- data/lib/native_btree/native_btree.bundle +0 -0
- data/lib/native_btree/native_btree.so +0 -0
- data/lib/native_btree/version.rb +2 -2
- data/lib/native_btree.rb +2 -1
- data/native_btree.gemspec +33 -0
- data/spec/debug.rb +24 -0
- data/spec/native_btree_class_spec.rb +24 -0
- data/spec/native_btree_instance_spec.rb +283 -0
- data/spec/native_btree_module_spec.rb +15 -0
- data/spec/spec_helper.rb +15 -0
- metadata +50 -18
- data/ext/native_btree/btree.cc +0 -128
- data/ext/native_btree/extconf.h +0 -11
- data/ext/native_btree/extconf.rb +0 -35
- data/ext/native_btree/rb_methods.cc +0 -221
@@ -0,0 +1,283 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe NativeBtree do
|
4
|
+
|
5
|
+
describe NativeBtree::Btree do
|
6
|
+
let(:tree) do
|
7
|
+
described_class.new do |a, b|
|
8
|
+
a - b
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#[]= method" do
|
13
|
+
|
14
|
+
it "respond to" do
|
15
|
+
expect(tree).to respond_to('[]=')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'set key/value pair' do
|
19
|
+
tree[2] = 22
|
20
|
+
expect(tree[2]).to be 22
|
21
|
+
end
|
22
|
+
|
23
|
+
it "pass key arg and value" do
|
24
|
+
expect(tree[:key] = 10).to be 10
|
25
|
+
end
|
26
|
+
|
27
|
+
it "Raise ArgumentError if key was not passed" do
|
28
|
+
expect { tree[] = 1 }.to raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'Call comparator while set value' do
|
32
|
+
comparator = spy('comparator')
|
33
|
+
def comparator.to_proc
|
34
|
+
proc do |a, b|
|
35
|
+
comparator.call()
|
36
|
+
a - b
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
btree = described_class.new(&comparator)
|
41
|
+
btree[1] = 1
|
42
|
+
btree[2] = 2
|
43
|
+
expect(comparator).to have_received(:call)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'has a set alias' do
|
47
|
+
expect(tree).to respond_to('set')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#[] method" do
|
52
|
+
it "respond to" do
|
53
|
+
expect(tree).to respond_to('[]')
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'return expected value if found' do
|
57
|
+
tree[3] = 'a'
|
58
|
+
tree[4] = 'b'
|
59
|
+
expect(tree[3]).to be 'a'
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'return nil if not found' do
|
63
|
+
tree[1] = '1'
|
64
|
+
tree[5] = '5'
|
65
|
+
expect(tree[2]).to be_nil
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'has a get alias' do
|
69
|
+
expect(tree).to respond_to('get')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#height method" do
|
74
|
+
it "respond to" do
|
75
|
+
expect(tree).to respond_to(:height)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'return tree height with items' do
|
79
|
+
tree[1] = 11
|
80
|
+
tree[2] = 22
|
81
|
+
tree[3] = 33
|
82
|
+
tree[4] = 44
|
83
|
+
expect(tree.height).to be 3
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'return 0 if empty tree' do
|
87
|
+
expect(tree.height).to be 0
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#size method" do
|
92
|
+
it "respond to" do
|
93
|
+
expect(tree).to respond_to(:size)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'return count of nodes' do
|
97
|
+
tree[1] = 1
|
98
|
+
tree[2] = 2
|
99
|
+
tree[3] = 3
|
100
|
+
expect(tree.size).to be 3
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'return 0 if empty tree' do
|
104
|
+
expect(tree.size).to be 0
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
describe "#delete method" do
|
110
|
+
it "respond to" do
|
111
|
+
expect(tree).to respond_to(:delete)
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'delete key value pair' do
|
115
|
+
tree[2] = 22
|
116
|
+
tree[3] = 33
|
117
|
+
tree.delete(3)
|
118
|
+
expect(tree[3]).to be_nil
|
119
|
+
end
|
120
|
+
|
121
|
+
it "return nil if not found" do
|
122
|
+
tree[3] = 33
|
123
|
+
expect(tree.delete(4)).to be_nil
|
124
|
+
end
|
125
|
+
|
126
|
+
it "return value if key is found" do
|
127
|
+
tree[2] = 22
|
128
|
+
tree[3] = 33
|
129
|
+
expect(tree.delete(2)).to be 22
|
130
|
+
end
|
131
|
+
|
132
|
+
it "call block with key if not found" do
|
133
|
+
tree[2] = 22
|
134
|
+
block = ->(key) { "#{key} is not found" }
|
135
|
+
expect(tree.delete(7, &block)).to be == "7 is not found"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#clear method" do
|
140
|
+
it "respond to" do
|
141
|
+
expect(tree).to respond_to(:clear)
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'clear tree' do
|
145
|
+
tree[1] = 11
|
146
|
+
tree[2] = 22
|
147
|
+
tree[3] = 33
|
148
|
+
expect(tree.size).to be 3
|
149
|
+
tree.clear()
|
150
|
+
expect(tree.size).to be 0
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'return self' do
|
154
|
+
tree[1] = 11
|
155
|
+
expect(tree.clear()).to be tree
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe "#filter method" do
|
160
|
+
xit "respond to" do
|
161
|
+
expect(described_cless.respond_to?(:filter)).to be true
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
describe "#filter! method" do
|
166
|
+
xit "respond to" do
|
167
|
+
expect(described_cless.respond_to?(:filter!)).to be true
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
describe "#include? method" do
|
172
|
+
it "respond to" do
|
173
|
+
expect(tree).to respond_to(:include?)
|
174
|
+
end
|
175
|
+
|
176
|
+
it 'return true is key exists' do
|
177
|
+
tree[3] = 33
|
178
|
+
expect(tree.include?(3)).to be true
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'return false if key not exists' do
|
182
|
+
tree[3] = 33
|
183
|
+
expect(tree.include?(4)).to be false
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe "to_ methods" do
|
188
|
+
describe "#to_a" do
|
189
|
+
it "respond to" do
|
190
|
+
expect(tree).to respond_to(:to_a)
|
191
|
+
end
|
192
|
+
|
193
|
+
it 'return Array' do
|
194
|
+
expect(tree.to_a).to be_kind_of(Array)
|
195
|
+
end
|
196
|
+
|
197
|
+
it 'has similar items' do
|
198
|
+
tree[2] = 22
|
199
|
+
tree[1] = 11
|
200
|
+
expect(tree.to_a()[0][1]).to be 11
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
describe "#to_h" do
|
205
|
+
it "respond to" do
|
206
|
+
expect(tree).to respond_to(:to_h)
|
207
|
+
end
|
208
|
+
|
209
|
+
it "return Hash" do
|
210
|
+
expect(tree.to_h).to be_kind_of(Hash)
|
211
|
+
end
|
212
|
+
|
213
|
+
it 'has similar keys' do
|
214
|
+
tree[2] = 22
|
215
|
+
tree[1] = 11
|
216
|
+
expect(tree.to_h()[1]).to be 11
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
describe "#each method" do
|
222
|
+
it "respond to" do
|
223
|
+
expect(tree).to respond_to(:each)
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'yield in to block value first' do
|
227
|
+
tree[2] = 22
|
228
|
+
|
229
|
+
value = nil
|
230
|
+
tree.each { |v| value = v }
|
231
|
+
|
232
|
+
expect(value).to be 22
|
233
|
+
end
|
234
|
+
|
235
|
+
it 'yield in to block key second' do
|
236
|
+
tree[2] = 22
|
237
|
+
|
238
|
+
key = nil
|
239
|
+
tree.each { |_v, k| key = k }
|
240
|
+
|
241
|
+
expect(key).to be 2
|
242
|
+
end
|
243
|
+
|
244
|
+
it 'yield ordered keys' do
|
245
|
+
tree[16] = 16
|
246
|
+
tree[0] = 0
|
247
|
+
tree[5] = 5
|
248
|
+
tree[-4] = -4
|
249
|
+
tree[7] = 7
|
250
|
+
|
251
|
+
check = [-4, 0, 5, 7, 16]
|
252
|
+
result = []
|
253
|
+
tree.each { |value| result << value }
|
254
|
+
|
255
|
+
expect(result).to eq(check)
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
describe "#each_key method" do
|
260
|
+
xit "respond to" do
|
261
|
+
expect(described_cless.respond_to?(:each_key)).to be true
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
describe "#each_value method" do
|
266
|
+
xit "respond to" do
|
267
|
+
expect(described_cless.respond_to?(:each_value)).to be true
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
describe "#select method" do
|
272
|
+
xit "respond to" do
|
273
|
+
expect(described_cless.respond_to?(:select)).to be true
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
describe "#select! method" do
|
278
|
+
xit "respond to" do
|
279
|
+
expect(described_cless.respond_to?(:select!)).to be true
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe NativeBtree do
|
4
|
+
it "has a version number" do
|
5
|
+
expect(described_class.const_defined?(:VERSION)).to be true
|
6
|
+
end
|
7
|
+
|
8
|
+
it "Has Btree contstant" do
|
9
|
+
expect(described_class.const_defined?(:Btree)).to be true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "Btree is class" do
|
13
|
+
expect(described_class::Btree.class).to be Class
|
14
|
+
end
|
15
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "native_btree"
|
4
|
+
|
5
|
+
RSpec.configure do |config|
|
6
|
+
# Enable flags like --only-failures and --next-failure
|
7
|
+
config.example_status_persistence_file_path = ".rspec_status"
|
8
|
+
|
9
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
10
|
+
config.disable_monkey_patching!
|
11
|
+
|
12
|
+
config.expect_with :rspec do |c|
|
13
|
+
c.syntax = :expect
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,37 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: native_btree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Feodorov
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: Ruby bindings to GTree balanced binary tree from GLib library.
|
14
14
|
email:
|
15
15
|
- webmaster@unixcomp.org
|
16
16
|
executables: []
|
17
17
|
extensions:
|
18
|
-
- ext/native_btree/
|
18
|
+
- ext/native_btree/extconf_cmake.rb
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
-
-
|
22
|
-
-
|
23
|
-
-
|
21
|
+
- CHANGELOG.md
|
22
|
+
- CMakeLists.txt
|
23
|
+
- Gemfile
|
24
|
+
- LICENSE
|
25
|
+
- README.md
|
26
|
+
- Rakefile
|
27
|
+
- ext/native_btree/CMakeLists.txt
|
28
|
+
- ext/native_btree/comparator.c
|
29
|
+
- ext/native_btree/constructor.c
|
30
|
+
- ext/native_btree/conversion.c
|
31
|
+
- ext/native_btree/extconf_cmake.rb
|
24
32
|
- ext/native_btree/include/btree.h
|
33
|
+
- ext/native_btree/include/common.h
|
34
|
+
- ext/native_btree/include/comparator.h
|
35
|
+
- ext/native_btree/include/constructor.h
|
36
|
+
- ext/native_btree/include/conversion.h
|
37
|
+
- ext/native_btree/include/instance.h
|
38
|
+
- ext/native_btree/include/iterators.h
|
25
39
|
- ext/native_btree/include/native_btree.h
|
40
|
+
- ext/native_btree/include/rbtree_type.h
|
41
|
+
- ext/native_btree/instance.c
|
42
|
+
- ext/native_btree/iterators.c
|
26
43
|
- ext/native_btree/native_btree.c
|
27
|
-
- ext/native_btree/
|
44
|
+
- ext/native_btree/rbtree_type.c
|
28
45
|
- lib/native_btree.rb
|
46
|
+
- lib/native_btree/native_btree.bundle
|
47
|
+
- lib/native_btree/native_btree.so
|
29
48
|
- lib/native_btree/version.rb
|
49
|
+
- native_btree.gemspec
|
50
|
+
- spec/debug.rb
|
51
|
+
- spec/native_btree_class_spec.rb
|
52
|
+
- spec/native_btree_instance_spec.rb
|
53
|
+
- spec/native_btree_module_spec.rb
|
54
|
+
- spec/spec_helper.rb
|
30
55
|
homepage: https://github.com/unixs/ruby-native-btree
|
31
56
|
licenses:
|
32
|
-
-
|
33
|
-
metadata:
|
34
|
-
|
57
|
+
- LGPL-3.0-or-later
|
58
|
+
metadata:
|
59
|
+
bug_tracker_uri: https://github.com/unixs/ruby-native-btree/issues
|
60
|
+
changelog_uri: https://github.com/unixs/ruby-native-btree/blob/master/CHANGELOG.md
|
61
|
+
documentation_uri: https://github.com/unixs/ruby-native-btree/wiki
|
62
|
+
homepage_uri: https://github.com/unixs/ruby-native-btree
|
63
|
+
source_code_uri: https://github.com/unixs/ruby-native-btree
|
64
|
+
wiki_uri: https://github.com/unixs/ruby-native-btree/wiki
|
65
|
+
rubygems_mfa_required: 'true'
|
66
|
+
post_install_message:
|
35
67
|
rdoc_options: []
|
36
68
|
require_paths:
|
37
69
|
- lib
|
@@ -39,15 +71,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
39
71
|
requirements:
|
40
72
|
- - ">="
|
41
73
|
- !ruby/object:Gem::Version
|
42
|
-
version: '2.
|
74
|
+
version: '2.6'
|
43
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
76
|
requirements:
|
45
|
-
- - "
|
77
|
+
- - ">="
|
46
78
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
79
|
+
version: '0'
|
48
80
|
requirements: []
|
49
|
-
rubygems_version: 3.
|
50
|
-
signing_key:
|
81
|
+
rubygems_version: 3.3.21
|
82
|
+
signing_key:
|
51
83
|
specification_version: 4
|
52
|
-
summary:
|
84
|
+
summary: Balanced binary tree from GLib.
|
53
85
|
test_files: []
|
data/ext/native_btree/btree.cc
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
#include "btree.h"
|
2
|
-
|
3
|
-
BTree::BTree(VALUE comnparator)
|
4
|
-
{
|
5
|
-
this->comparator = comnparator;
|
6
|
-
this->tree = g_tree_new_with_data(BTree::nativeComparator, this);
|
7
|
-
}
|
8
|
-
|
9
|
-
BTree::~BTree()
|
10
|
-
{
|
11
|
-
g_tree_destroy(this->tree);
|
12
|
-
}
|
13
|
-
|
14
|
-
void
|
15
|
-
BTree::mark()
|
16
|
-
{
|
17
|
-
rb_gc_mark(this->comparator);
|
18
|
-
this->markMyRValues();
|
19
|
-
}
|
20
|
-
|
21
|
-
void
|
22
|
-
BTree::markMyRValues()
|
23
|
-
{
|
24
|
-
g_tree_foreach(this->tree, BTree::markRValue, NULL);
|
25
|
-
}
|
26
|
-
|
27
|
-
gint
|
28
|
-
BTree::markRValue(gpointer k, gpointer v, gpointer not_used)
|
29
|
-
{
|
30
|
-
const VALUE key = reinterpret_cast<VALUE>(k);
|
31
|
-
const VALUE value = reinterpret_cast<VALUE>(v);
|
32
|
-
|
33
|
-
rb_gc_mark(key);
|
34
|
-
rb_gc_mark(value);
|
35
|
-
|
36
|
-
return false;
|
37
|
-
}
|
38
|
-
|
39
|
-
gint
|
40
|
-
BTree::nativeComparator(gconstpointer a, gconstpointer b, gpointer data)
|
41
|
-
{
|
42
|
-
const BTree *tree = static_cast<BTree *>(data);
|
43
|
-
const VALUE keyA = reinterpret_cast<VALUE>(a);
|
44
|
-
const VALUE keyB = reinterpret_cast<VALUE>(b);
|
45
|
-
|
46
|
-
VALUE ruby_result = rb_funcall(tree->comparator, rb_intern("call"), 2, keyA, keyB);
|
47
|
-
|
48
|
-
return NUM2INT(ruby_result);
|
49
|
-
}
|
50
|
-
|
51
|
-
gint
|
52
|
-
BTree::size()
|
53
|
-
{
|
54
|
-
return g_tree_nnodes(this->tree);
|
55
|
-
}
|
56
|
-
|
57
|
-
gint
|
58
|
-
BTree::height()
|
59
|
-
{
|
60
|
-
return g_tree_height(this->tree);
|
61
|
-
}
|
62
|
-
|
63
|
-
void
|
64
|
-
BTree::set(VALUE key, VALUE value)
|
65
|
-
{
|
66
|
-
g_tree_replace(this->tree, (gpointer) key, (gpointer) value);
|
67
|
-
}
|
68
|
-
|
69
|
-
VALUE
|
70
|
-
BTree::get(VALUE key)
|
71
|
-
{
|
72
|
-
gpointer result = g_tree_lookup(this->tree, reinterpret_cast<gconstpointer>(key));
|
73
|
-
|
74
|
-
if (!result) {
|
75
|
-
return Qnil;
|
76
|
-
}
|
77
|
-
|
78
|
-
return reinterpret_cast<VALUE>(result);
|
79
|
-
}
|
80
|
-
|
81
|
-
bool
|
82
|
-
BTree::del(VALUE key)
|
83
|
-
{
|
84
|
-
return g_tree_remove(this->tree, reinterpret_cast<gconstpointer>(key));
|
85
|
-
}
|
86
|
-
|
87
|
-
void
|
88
|
-
BTree::clear()
|
89
|
-
{
|
90
|
-
g_tree_unref(this->tree);
|
91
|
-
this->tree = g_tree_new_with_data(BTree::nativeComparator, this);
|
92
|
-
}
|
93
|
-
|
94
|
-
bool
|
95
|
-
BTree::has(VALUE key)
|
96
|
-
{
|
97
|
-
bool result = g_tree_lookup(this->tree, reinterpret_cast<gconstpointer>(key));
|
98
|
-
|
99
|
-
if (!result) {
|
100
|
-
return true;
|
101
|
-
}
|
102
|
-
|
103
|
-
return false;
|
104
|
-
}
|
105
|
-
|
106
|
-
gboolean
|
107
|
-
BTree::traverseFunc(gpointer k, gpointer v, gpointer b)
|
108
|
-
{
|
109
|
-
const VALUE key = reinterpret_cast<VALUE>(k);
|
110
|
-
const VALUE value = reinterpret_cast<VALUE>(v);
|
111
|
-
const VALUE block = reinterpret_cast<VALUE>(b);
|
112
|
-
|
113
|
-
rb_funcall(block, rb_intern("call"), 2, key, value);
|
114
|
-
|
115
|
-
return FALSE;
|
116
|
-
}
|
117
|
-
|
118
|
-
void
|
119
|
-
BTree::each(VALUE block)
|
120
|
-
{
|
121
|
-
g_tree_foreach(this->tree, BTree::traverseFunc, reinterpret_cast<gpointer>(block));
|
122
|
-
}
|
123
|
-
|
124
|
-
void
|
125
|
-
BTree::each(GTraverseFunc func, gpointer data)
|
126
|
-
{
|
127
|
-
g_tree_foreach(this->tree, func, data);
|
128
|
-
}
|
data/ext/native_btree/extconf.h
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#ifndef EXTCONF_H
|
2
|
-
#define EXTCONF_H
|
3
|
-
#define HAVE_G_TREE_INSERT 1
|
4
|
-
#define HAVE_G_TREE_REPLACE 1
|
5
|
-
#define HAVE_G_TREE_NNODES 1
|
6
|
-
#define HAVE_G_TREE_LOOKUP 1
|
7
|
-
#define HAVE_G_TREE_FOREACH 1
|
8
|
-
#define HAVE_G_TREE_SEARCH 1
|
9
|
-
#define HAVE_G_TREE_DESTROY 1
|
10
|
-
#define HAVE_G_TREE_HEIGHT 1
|
11
|
-
#endif
|
data/ext/native_btree/extconf.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require "mkmf"
|
2
|
-
|
3
|
-
local_include = %w(
|
4
|
-
$(srcdir)/include
|
5
|
-
);
|
6
|
-
|
7
|
-
ldflags = cppflags = nil
|
8
|
-
|
9
|
-
pkg_config "glib-2.0"
|
10
|
-
dir_config 'glib', cppflags, ldflags
|
11
|
-
|
12
|
-
abort "Can't find the glib.h header" unless find_header 'glib.h'
|
13
|
-
abort "Can't find the glib libary'" unless find_library 'glib-2.0', 'g_tree_new_full'
|
14
|
-
abort "g_tree_insert() not found" unless have_func 'g_tree_insert'
|
15
|
-
abort "g_tree_replace() not found" unless have_func 'g_tree_replace'
|
16
|
-
abort "g_tree_nnodes() not found" unless have_func 'g_tree_nnodes'
|
17
|
-
abort "g_tree_lookup() not found" unless have_func 'g_tree_lookup'
|
18
|
-
abort "g_tree_foreach() not found" unless have_func 'g_tree_foreach'
|
19
|
-
abort "g_tree_search() not found" unless have_func 'g_tree_search'
|
20
|
-
abort "g_tree_destroy() not found" unless have_func 'g_tree_destroy'
|
21
|
-
abort "g_tree_height() not found" unless have_func 'g_tree_height'
|
22
|
-
|
23
|
-
$DEBUG = true
|
24
|
-
|
25
|
-
$VPATH.concat %w(
|
26
|
-
$(srcdir)/include
|
27
|
-
)
|
28
|
-
|
29
|
-
$INCFLAGS << local_include.map{|dir| " -I#{dir}" }.join("")
|
30
|
-
CONFIG["debugflags"] = "-ggdb3"
|
31
|
-
CONFIG["optflags"] = "-O0"
|
32
|
-
$CXXFLAGS = "-O0 -ggdb3 -pipe"
|
33
|
-
|
34
|
-
create_header
|
35
|
-
create_makefile "native_btree/native_btree"
|