snappy 0.0.6 → 0.0.7
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 +8 -8
- data/ext/api.c +98 -0
- data/ext/extconf.rb +0 -1
- data/lib/snappy/version.rb +1 -1
- data/test/test-snappy.rb +12 -0
- metadata +3 -3
- data/ext/api.cc +0 -72
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTdmZWM4Y2U4OTJkYTgxY2E3MDUyYzE2MDZjMGVhMWMyYmJmNWE4Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjFlNmUzMjYwYjFhZjhlZGQ4YTBmODNjZGYyNzU5NDI0ZmVlMzA0Yg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTU4ZDY5YzM5M2Q2ZmE5YTU2ZTgwYWUxOTQxZTFkYzk4Y2Q1YmZiMGUxZDBl
|
10
|
+
Njc5YWVjNzU2YzU3M2MxNDYwYzBiODJkNWI4MWVjZTlmY2E3MDc4YjJlZGNj
|
11
|
+
YTgwMThhNWExOWQyMTY2Yjc3NzAzNTAwM2ZlMTk2YmZmZWIzMDU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OWE4YTI2NWUxODJhN2E2MjBjNWM0OWYzNDJhMzdjMzA4YTFiNjA4YmEwNzUy
|
14
|
+
MWUxNDdjZmQxMWJmNWNkYmQ5MTE4ODNiMTYwY2I2MDJiMDQ5ZjdmNzM1OGRh
|
15
|
+
NmYxMzY2YzAwNzI0NjlhYWU2NjRkMGRmZWFjYzBhZTlkMGI2NmE=
|
data/ext/api.c
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
#include "ruby.h"
|
2
|
+
#include "snappy-c.h"
|
3
|
+
|
4
|
+
static VALUE rb_mSnappy;
|
5
|
+
static VALUE rb_eSnappy;
|
6
|
+
|
7
|
+
static VALUE
|
8
|
+
snappy_raise(snappy_status result)
|
9
|
+
{
|
10
|
+
if (result == SNAPPY_INVALID_INPUT) {
|
11
|
+
rb_raise(rb_eSnappy, "INVALID INPUT");
|
12
|
+
} else if (result == SNAPPY_BUFFER_TOO_SMALL) {
|
13
|
+
rb_raise(rb_eSnappy, "BUFFER TOO SMALL");
|
14
|
+
} else {
|
15
|
+
rb_raise(rb_eSnappy, "ERROR");
|
16
|
+
}
|
17
|
+
return Qnil;
|
18
|
+
}
|
19
|
+
|
20
|
+
static VALUE
|
21
|
+
snappy_deflate(int argc, VALUE *argv, VALUE self)
|
22
|
+
{
|
23
|
+
VALUE src, dst;
|
24
|
+
size_t output_length;
|
25
|
+
snappy_status result;
|
26
|
+
|
27
|
+
rb_scan_args(argc, argv, "11", &src, &dst);
|
28
|
+
StringValue(src);
|
29
|
+
|
30
|
+
output_length = snappy_max_compressed_length(RSTRING_LEN(src));
|
31
|
+
|
32
|
+
if (NIL_P(dst)) {
|
33
|
+
dst = rb_str_new(NULL, output_length);
|
34
|
+
} else {
|
35
|
+
StringValue(dst);
|
36
|
+
rb_str_resize(dst, output_length);
|
37
|
+
}
|
38
|
+
|
39
|
+
result = snappy_compress(RSTRING_PTR(src), RSTRING_LEN(src), RSTRING_PTR(dst), &output_length);
|
40
|
+
if (result == SNAPPY_OK) {
|
41
|
+
rb_str_resize(dst, output_length);
|
42
|
+
return dst;
|
43
|
+
} else {
|
44
|
+
return snappy_raise(result);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
static VALUE
|
49
|
+
snappy_inflate(int argc, VALUE *argv, VALUE self)
|
50
|
+
{
|
51
|
+
VALUE src, dst;
|
52
|
+
size_t output_length;
|
53
|
+
snappy_status result;
|
54
|
+
|
55
|
+
rb_scan_args(argc, argv, "11", &src, &dst);
|
56
|
+
StringValue(src);
|
57
|
+
|
58
|
+
result = snappy_uncompressed_length(RSTRING_PTR(src), RSTRING_LEN(src), &output_length);
|
59
|
+
if (result != SNAPPY_OK) {
|
60
|
+
return snappy_raise(result);
|
61
|
+
}
|
62
|
+
|
63
|
+
if (NIL_P(dst)) {
|
64
|
+
dst = rb_str_new(NULL, output_length);
|
65
|
+
} else {
|
66
|
+
StringValue(dst);
|
67
|
+
rb_str_resize(dst, output_length);
|
68
|
+
}
|
69
|
+
|
70
|
+
result = snappy_uncompress(RSTRING_PTR(src), RSTRING_LEN(src), RSTRING_PTR(dst), &output_length);
|
71
|
+
if (result != SNAPPY_OK) {
|
72
|
+
return snappy_raise(result);
|
73
|
+
}
|
74
|
+
|
75
|
+
StringValue(dst);
|
76
|
+
rb_str_resize(dst, output_length);
|
77
|
+
|
78
|
+
return dst;
|
79
|
+
}
|
80
|
+
|
81
|
+
void Init_snappy()
|
82
|
+
{
|
83
|
+
rb_mSnappy = rb_define_module("Snappy");
|
84
|
+
rb_eSnappy = rb_define_class_under(rb_mSnappy, "Error", rb_eStandardError);
|
85
|
+
rb_define_singleton_method(rb_mSnappy, "deflate", snappy_deflate, -1);
|
86
|
+
rb_define_singleton_method(rb_mSnappy, "inflate", snappy_inflate, -1);
|
87
|
+
|
88
|
+
VALUE rb_mSnappy_singleton = rb_singleton_class(rb_mSnappy);
|
89
|
+
|
90
|
+
rb_define_alias(rb_mSnappy_singleton, "compress", "deflate");
|
91
|
+
rb_define_alias(rb_mSnappy_singleton, "load", "deflate");
|
92
|
+
|
93
|
+
rb_define_alias(rb_mSnappy_singleton, "uncompress", "inflate");
|
94
|
+
rb_define_alias(rb_mSnappy_singleton, "dump", "inflate");
|
95
|
+
|
96
|
+
rb_require("snappy/writer");
|
97
|
+
rb_require("snappy/reader");
|
98
|
+
}
|
data/ext/extconf.rb
CHANGED
data/lib/snappy/version.rb
CHANGED
data/test/test-snappy.rb
CHANGED
@@ -9,4 +9,16 @@ describe Snappy do
|
|
9
9
|
s = Array.new(1024){T.sample}.join
|
10
10
|
Snappy.inflate(Snappy.deflate s).must_equal(s)
|
11
11
|
end
|
12
|
+
|
13
|
+
it "well done (pair)" do
|
14
|
+
s = Array.new(1024){T.sample}.join
|
15
|
+
[
|
16
|
+
[:deflate, :inflate],
|
17
|
+
[:compress, :uncompress],
|
18
|
+
[:load, :dump],
|
19
|
+
].each do |(i, o)|
|
20
|
+
Snappy.__send__(o, (Snappy.__send__ i, s)).must_equal(s)
|
21
|
+
eval %{Snappy.#{o}(Snappy.#{i} s).must_equal(s)}
|
22
|
+
end
|
23
|
+
end
|
12
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snappy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miyucy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-03-
|
11
|
+
date: 2013-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -65,7 +65,7 @@ files:
|
|
65
65
|
- LICENSE.txt
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
|
-
- ext/api.
|
68
|
+
- ext/api.c
|
69
69
|
- ext/extconf.rb
|
70
70
|
- lib/snappy/reader.rb
|
71
71
|
- lib/snappy/version.rb
|
data/ext/api.cc
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
#include "ruby.h"
|
2
|
-
#include "snappy.h"
|
3
|
-
|
4
|
-
static VALUE rb_mSnappy;
|
5
|
-
static VALUE rb_eSnappy;
|
6
|
-
|
7
|
-
static VALUE
|
8
|
-
snappy_deflate(int argc, VALUE *argv, VALUE self)
|
9
|
-
{
|
10
|
-
VALUE src, dst;
|
11
|
-
size_t output_length;
|
12
|
-
|
13
|
-
rb_scan_args(argc, argv, "11", &src, &dst);
|
14
|
-
StringValue(src);
|
15
|
-
|
16
|
-
output_length = snappy::MaxCompressedLength(RSTRING_LEN(src));
|
17
|
-
|
18
|
-
if (NIL_P(dst)) {
|
19
|
-
dst = rb_str_new(NULL, output_length);
|
20
|
-
} else {
|
21
|
-
StringValue(dst);
|
22
|
-
rb_str_resize(dst, output_length);
|
23
|
-
}
|
24
|
-
|
25
|
-
snappy::RawCompress(RSTRING_PTR(src), RSTRING_LEN(src), RSTRING_PTR(dst), &output_length);
|
26
|
-
rb_str_resize(dst, output_length);
|
27
|
-
|
28
|
-
return dst;
|
29
|
-
}
|
30
|
-
|
31
|
-
static VALUE
|
32
|
-
snappy_inflate(int argc, VALUE *argv, VALUE self)
|
33
|
-
{
|
34
|
-
VALUE src, dst;
|
35
|
-
size_t output_length;
|
36
|
-
|
37
|
-
rb_scan_args(argc, argv, "11", &src, &dst);
|
38
|
-
StringValue(src);
|
39
|
-
|
40
|
-
if (!snappy::GetUncompressedLength(RSTRING_PTR(src), RSTRING_LEN(src), &output_length)) {
|
41
|
-
rb_raise(rb_eSnappy, "snappy::GetUncompressedLength");
|
42
|
-
}
|
43
|
-
|
44
|
-
if (NIL_P(dst)) {
|
45
|
-
dst = rb_str_new(NULL, output_length);
|
46
|
-
} else {
|
47
|
-
StringValue(dst);
|
48
|
-
rb_str_resize(dst, output_length);
|
49
|
-
}
|
50
|
-
|
51
|
-
if (!snappy::RawUncompress(RSTRING_PTR(src), RSTRING_LEN(src), RSTRING_PTR(dst))) {
|
52
|
-
rb_raise(rb_eSnappy, "snappy::RawUncompress");
|
53
|
-
}
|
54
|
-
|
55
|
-
return dst;
|
56
|
-
}
|
57
|
-
|
58
|
-
extern "C" {
|
59
|
-
void Init_snappy()
|
60
|
-
{
|
61
|
-
rb_mSnappy = rb_define_module("Snappy");
|
62
|
-
rb_eSnappy = rb_define_class_under(rb_mSnappy, "Error", rb_eStandardError);
|
63
|
-
rb_define_singleton_method(rb_mSnappy, "deflate", (VALUE (*)(...))snappy_deflate, -1);
|
64
|
-
rb_define_singleton_method(rb_mSnappy, "inflate", (VALUE (*)(...))snappy_inflate, -1);
|
65
|
-
|
66
|
-
rb_define_singleton_method(rb_mSnappy, "compress", (VALUE (*)(...))snappy_deflate, -1);
|
67
|
-
rb_define_singleton_method(rb_mSnappy, "uncompress", (VALUE (*)(...))snappy_inflate, -1);
|
68
|
-
|
69
|
-
rb_require("snappy/writer");
|
70
|
-
rb_require("snappy/reader");
|
71
|
-
}
|
72
|
-
}
|