gnista 0.0.5 → 1.0.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/HISTORY.md +8 -0
- data/ext/gnista/gnista.c +17 -6
- data/lib/gnista/version.rb +1 -1
- data/test/test_commands.rb +55 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d47bb0cb81b09f7ec00ad3f9af92538158afcdec
|
4
|
+
data.tar.gz: 839bc1ef781bedc07e258da534cadde3629102b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ac005d6a3316c3f2dfe7ec3d8f1eea9f3e57ca43d70f5fe3cc5aa92cd898c27bd84f81c0f6664bac07211af3a93cbec4df007b994d1fb91d2d374e7f018cb02
|
7
|
+
data.tar.gz: 528360e116b17fb6a4472c5f5ce850b0fed5eec588804cdaa17eb109be3eb11de1cfd8e5c0588ef4b2c5d3d913520a65847a322026b363c14e4553f76af344a8
|
data/HISTORY.md
CHANGED
data/ext/gnista/gnista.c
CHANGED
@@ -228,6 +228,10 @@ static VALUE method_logreader_each(VALUE self) {
|
|
228
228
|
instance_logreader *i_logreader = get_logreader(self);
|
229
229
|
check_open(i_logreader->open);
|
230
230
|
|
231
|
+
if (!rb_block_given_p()) {
|
232
|
+
return rb_funcall(self, rb_intern("to_enum"), 0);
|
233
|
+
}
|
234
|
+
|
231
235
|
returncode = sparkey_logiter_create(&logiter, i_logreader->logreader);
|
232
236
|
|
233
237
|
if (returncode != SPARKEY_SUCCESS) {
|
@@ -238,7 +242,7 @@ static VALUE method_logreader_each(VALUE self) {
|
|
238
242
|
VALUE del_sym = ID2SYM(rb_intern("delete"));
|
239
243
|
uint8_t *keybuf = malloc(sparkey_logreader_maxkeylen(i_logreader->logreader));
|
240
244
|
uint8_t *valuebuf = malloc(sparkey_logreader_maxvaluelen(i_logreader->logreader));
|
241
|
-
while (
|
245
|
+
while (i_logreader->open) {
|
242
246
|
returncode = sparkey_logiter_next(logiter, i_logreader->logreader);
|
243
247
|
|
244
248
|
if (sparkey_logiter_state(logiter) != SPARKEY_ITER_ACTIVE) {
|
@@ -284,7 +288,9 @@ static VALUE method_logreader_each(VALUE self) {
|
|
284
288
|
free(valuebuf);
|
285
289
|
sparkey_logiter_close(&logiter);
|
286
290
|
|
287
|
-
|
291
|
+
check_open(i_logreader->open);
|
292
|
+
|
293
|
+
return self;
|
288
294
|
}
|
289
295
|
|
290
296
|
static VALUE method_logreader_open(VALUE self) {
|
@@ -402,8 +408,12 @@ static VALUE method_hash_each(VALUE self) {
|
|
402
408
|
instance_hashreader *i_hashreader = get_hashreader(self);
|
403
409
|
sparkey_logiter *logiter;
|
404
410
|
check_open(i_hashreader->open);
|
405
|
-
sparkey_logreader *logreader = sparkey_hash_getreader(i_hashreader->hashreader);
|
406
411
|
|
412
|
+
if (!rb_block_given_p()) {
|
413
|
+
return rb_funcall(self, rb_intern("to_enum"), 0);
|
414
|
+
}
|
415
|
+
|
416
|
+
sparkey_logreader *logreader = sparkey_hash_getreader(i_hashreader->hashreader);
|
407
417
|
returncode = sparkey_logiter_create(&logiter, logreader);
|
408
418
|
|
409
419
|
if (returncode != SPARKEY_SUCCESS) {
|
@@ -412,7 +422,7 @@ static VALUE method_hash_each(VALUE self) {
|
|
412
422
|
|
413
423
|
uint8_t *keybuf = malloc(sparkey_logreader_maxkeylen(logreader));
|
414
424
|
uint8_t *valuebuf = malloc(sparkey_logreader_maxvaluelen(logreader));
|
415
|
-
while (
|
425
|
+
while (i_hashreader->open) {
|
416
426
|
returncode = sparkey_logiter_hashnext(logiter, i_hashreader->hashreader);
|
417
427
|
|
418
428
|
if (sparkey_logiter_state(logiter) != SPARKEY_ITER_ACTIVE) {
|
@@ -448,14 +458,15 @@ static VALUE method_hash_each(VALUE self) {
|
|
448
458
|
}
|
449
459
|
|
450
460
|
rb_yield_values(2, rb_str_new((char *)keybuf, actual_keylen), rb_str_new((char *)valuebuf, actual_valuelen));
|
451
|
-
|
452
461
|
}
|
453
462
|
|
454
463
|
free(keybuf);
|
455
464
|
free(valuebuf);
|
456
465
|
sparkey_logiter_close(&logiter);
|
457
466
|
|
458
|
-
|
467
|
+
check_open(i_hashreader->open);
|
468
|
+
|
469
|
+
return self;
|
459
470
|
}
|
460
471
|
|
461
472
|
static VALUE method_hash_get(VALUE self, VALUE key) {
|
data/lib/gnista/version.rb
CHANGED
data/test/test_commands.rb
CHANGED
@@ -36,10 +36,10 @@ describe Gnista do
|
|
36
36
|
@logwriter.delete "key2"
|
37
37
|
@logwriter.flush
|
38
38
|
|
39
|
-
|
39
|
+
logreader = Gnista::Logreader.new log_path
|
40
40
|
|
41
41
|
a = true
|
42
|
-
|
42
|
+
logreader.each do |key,value,type|
|
43
43
|
if a
|
44
44
|
key.must_equal "key1"
|
45
45
|
value.must_equal "value1"
|
@@ -54,7 +54,31 @@ describe Gnista do
|
|
54
54
|
|
55
55
|
a.must_equal false
|
56
56
|
|
57
|
-
|
57
|
+
assert_raises GnistaException do
|
58
|
+
logreader.each do
|
59
|
+
logreader.close
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it "can iterate each log with an enumerator" do
|
65
|
+
@logwriter.put "key1", "value1"
|
66
|
+
@logwriter.delete "key2"
|
67
|
+
@logwriter.flush
|
68
|
+
|
69
|
+
logreader = Gnista::Logreader.new log_path
|
70
|
+
|
71
|
+
iter = logreader.each
|
72
|
+
iter.next.must_equal ["key1", "value1", :put]
|
73
|
+
iter.next.must_equal ["key2", nil, :delete]
|
74
|
+
|
75
|
+
iter = logreader.each
|
76
|
+
iter.next.must_equal ["key1", "value1", :put]
|
77
|
+
logreader.close
|
78
|
+
|
79
|
+
assert_raises GnistaException do
|
80
|
+
iter.next.must_equal ["key2", nil, :delete]
|
81
|
+
end
|
58
82
|
end
|
59
83
|
|
60
84
|
it "can read hash max key/value length" do
|
@@ -92,7 +116,35 @@ describe Gnista do
|
|
92
116
|
|
93
117
|
a.must_equal false
|
94
118
|
|
119
|
+
assert_raises GnistaException do
|
120
|
+
hash.each do
|
121
|
+
hash.close
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
FileUtils.rm hash_path
|
126
|
+
end
|
127
|
+
|
128
|
+
it "can iterate each hash with an enumerator" do
|
129
|
+
@logwriter.put "key1", "value1"
|
130
|
+
@logwriter.put "key2", "value2"
|
131
|
+
@logwriter.flush
|
132
|
+
Gnista::Hash.write hash_path, log_path
|
133
|
+
|
134
|
+
hash = Gnista::Hash.new hash_path, log_path
|
135
|
+
|
136
|
+
iter = hash.each
|
137
|
+
iter.next.must_equal ["key1", "value1"]
|
138
|
+
iter.next.must_equal ["key2", "value2"]
|
139
|
+
|
140
|
+
iter = hash.each
|
141
|
+
iter.next.must_equal ["key1", "value1"]
|
95
142
|
hash.close
|
143
|
+
|
144
|
+
assert_raises GnistaException do
|
145
|
+
iter.next.must_equal ["key2", "value2"]
|
146
|
+
end
|
147
|
+
|
96
148
|
FileUtils.rm hash_path
|
97
149
|
end
|
98
150
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnista
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emanuel Andersson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|