ruby-lzws 1.3.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -5
- data/ext/extconf.rb +87 -19
- data/ext/lzws_ext/buffer.c +0 -2
- data/ext/lzws_ext/error.c +0 -2
- data/ext/lzws_ext/gvl.h +2 -2
- data/ext/lzws_ext/io.c +0 -1
- data/ext/lzws_ext/macro.h +1 -1
- data/ext/lzws_ext/main.c +5 -1
- data/ext/lzws_ext/option.c +0 -1
- data/ext/lzws_ext/stream/compressor.c +0 -2
- data/ext/lzws_ext/stream/decompressor.c +0 -2
- data/ext/lzws_ext/string.c +0 -1
- data/lib/lzws/stream/abstract.rb +9 -5
- data/lib/lzws/stream/reader.rb +9 -0
- data/lib/lzws/stream/writer.rb +26 -2
- data/lib/lzws/validation.rb +8 -25
- data/lib/lzws/version.rb +1 -1
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e48df46a2a929a961d72881cf20a4c087769576f3208cc2dee02a31b3d1f00a
|
4
|
+
data.tar.gz: f5fe984d47acaa03d91ca5f7d19a5e87c49b029aea37323fbd2e2c72a5f57491
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ea80697e381e1a350bb49c0c267791b41783e09ccfca10348ae1c02afa090de7930d06f1a2ca8fd6ff81929f86f34ff6bf46d9b51ac83fe4dc09c558227385c
|
7
|
+
data.tar.gz: 7c6843ea9729056bea5bd149b31d25409e9f5d225b43e12f6305353bf5a4b820eb94104e192d02dda454cccc0adf684e17dc953719184a7b5a846570f9575225
|
data/README.md
CHANGED
@@ -8,7 +8,9 @@ See [lzws library](https://github.com/andrew-aladev/lzws).
|
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
|
-
|
11
|
+
Operating systems: GNU/Linux, FreeBSD, OSX, Windows (MinGW).
|
12
|
+
|
13
|
+
Dependencies: [lzws](https://github.com/andrew-aladev/lzws) 1.4.0+ version.
|
12
14
|
|
13
15
|
```sh
|
14
16
|
gem install ruby-lzws
|
@@ -354,10 +356,6 @@ You should lock all shared data between threads.
|
|
354
356
|
For example: you should not use same compressor/decompressor inside multiple threads.
|
355
357
|
Please verify that you are using each processor inside single thread at the same time.
|
356
358
|
|
357
|
-
## Operating systems
|
358
|
-
|
359
|
-
GNU/Linux, FreeBSD, OSX, Windows (MinGW).
|
360
|
-
|
361
359
|
## CI
|
362
360
|
|
363
361
|
Please visit [scripts/test-images](scripts/test-images).
|
data/ext/extconf.rb
CHANGED
@@ -5,23 +5,94 @@ require "mkmf"
|
|
5
5
|
|
6
6
|
have_func "rb_thread_call_without_gvl", "ruby/thread.h"
|
7
7
|
|
8
|
-
def require_header(name, types
|
8
|
+
def require_header(name, constants: [], macroses: [], types: [], variables: [])
|
9
9
|
abort "Can't find #{name} header" unless find_header name
|
10
10
|
|
11
|
+
constants.each do |constant|
|
12
|
+
abort "Can't find #{constant} constant in #{name} header" unless have_const constant, name
|
13
|
+
end
|
14
|
+
|
15
|
+
macroses.each do |macro|
|
16
|
+
abort "Can't find #{macro} macro in #{name} header" unless have_macro macro, name
|
17
|
+
end
|
18
|
+
|
11
19
|
types.each do |type|
|
12
20
|
abort "Can't find #{type} type in #{name} header" unless find_type type, nil, name
|
13
21
|
end
|
22
|
+
|
23
|
+
variables.each do |variable|
|
24
|
+
abort "Can't find #{variable} variable in #{name} header" unless have_var variable, name
|
25
|
+
end
|
14
26
|
end
|
15
27
|
|
16
|
-
require_header
|
17
|
-
|
18
|
-
|
28
|
+
require_header(
|
29
|
+
"lzws/buffer.h",
|
30
|
+
:macroses => %w[
|
31
|
+
LZWS_DEFAULT_DESTINATION_BUFFER_LENGTH_FOR_COMPRESSOR
|
32
|
+
LZWS_DEFAULT_DESTINATION_BUFFER_LENGTH_FOR_DECOMPRESSOR
|
33
|
+
LZWS_DEFAULT_SOURCE_BUFFER_LENGTH_FOR_COMPRESSOR
|
34
|
+
LZWS_DEFAULT_SOURCE_BUFFER_LENGTH_FOR_DECOMPRESSOR
|
35
|
+
]
|
36
|
+
)
|
37
|
+
require_header(
|
38
|
+
"lzws/common.h",
|
39
|
+
:constants => %w[
|
40
|
+
LZWS_BIGGEST_MAX_CODE_BIT_LENGTH
|
41
|
+
LZWS_LOWEST_MAX_CODE_BIT_LENGTH
|
42
|
+
],
|
43
|
+
:types => %w[
|
44
|
+
lzws_byte_fast_t
|
45
|
+
lzws_result_t
|
46
|
+
]
|
47
|
+
)
|
48
|
+
require_header(
|
49
|
+
"lzws/compressor/common.h",
|
50
|
+
:constants => %w[
|
51
|
+
LZWS_COMPRESSOR_ALLOCATE_FAILED
|
52
|
+
LZWS_COMPRESSOR_INVALID_MAX_CODE_BIT_LENGTH
|
53
|
+
LZWS_COMPRESSOR_NEEDS_MORE_DESTINATION
|
54
|
+
],
|
55
|
+
:types => %w[lzws_compressor_options_t],
|
56
|
+
:variables => %w[LZWS_COMPRESSOR_DEFAULT_OPTIONS]
|
57
|
+
)
|
19
58
|
require_header "lzws/compressor/main.h"
|
20
|
-
require_header
|
21
|
-
|
59
|
+
require_header(
|
60
|
+
"lzws/compressor/state.h",
|
61
|
+
:types => %w[lzws_compressor_state_t]
|
62
|
+
)
|
63
|
+
require_header(
|
64
|
+
"lzws/config.h",
|
65
|
+
:macroses => %w[LZWS_VERSION]
|
66
|
+
)
|
67
|
+
require_header(
|
68
|
+
"lzws/decompressor/common.h",
|
69
|
+
:constants => %w[
|
70
|
+
LZWS_DECOMPRESSOR_ALLOCATE_FAILED
|
71
|
+
LZWS_DECOMPRESSOR_CORRUPTED_SOURCE
|
72
|
+
LZWS_DECOMPRESSOR_INVALID_MAGIC_HEADER
|
73
|
+
LZWS_DECOMPRESSOR_INVALID_MAX_CODE_BIT_LENGTH
|
74
|
+
LZWS_DECOMPRESSOR_NEEDS_MORE_DESTINATION
|
75
|
+
],
|
76
|
+
:types => %w[lzws_decompressor_options_t],
|
77
|
+
:variables => %w[LZWS_DECOMPRESSOR_DEFAULT_OPTIONS]
|
78
|
+
)
|
22
79
|
require_header "lzws/decompressor/main.h"
|
23
|
-
require_header
|
24
|
-
|
80
|
+
require_header(
|
81
|
+
"lzws/decompressor/state.h",
|
82
|
+
:types => %w[lzws_decompressor_state_t]
|
83
|
+
)
|
84
|
+
require_header(
|
85
|
+
"lzws/file.h",
|
86
|
+
:constants => %w[
|
87
|
+
LZWS_FILE_ALLOCATE_FAILED
|
88
|
+
LZWS_FILE_DECOMPRESSOR_CORRUPTED_SOURCE
|
89
|
+
LZWS_FILE_NOT_ENOUGH_DESTINATION_BUFFER
|
90
|
+
LZWS_FILE_NOT_ENOUGH_SOURCE_BUFFER
|
91
|
+
LZWS_FILE_READ_FAILED
|
92
|
+
LZWS_FILE_VALIDATE_FAILED
|
93
|
+
LZWS_FILE_WRITE_FAILED
|
94
|
+
]
|
95
|
+
)
|
25
96
|
|
26
97
|
def require_library(name, functions)
|
27
98
|
functions.each do |function|
|
@@ -32,22 +103,19 @@ end
|
|
32
103
|
require_library(
|
33
104
|
"lzws",
|
34
105
|
%w[
|
106
|
+
lzws_compress
|
107
|
+
lzws_compress_file
|
108
|
+
lzws_compressor_finish
|
109
|
+
lzws_compressor_free_state
|
110
|
+
lzws_compressor_get_initial_state
|
35
111
|
lzws_create_source_buffer_for_compressor
|
36
|
-
lzws_create_destination_buffer_for_compressor
|
37
112
|
lzws_create_source_buffer_for_decompressor
|
113
|
+
lzws_create_destination_buffer_for_compressor
|
38
114
|
lzws_create_destination_buffer_for_decompressor
|
39
|
-
|
40
|
-
lzws_compressor_get_initial_state
|
41
|
-
lzws_compressor_free_state
|
42
|
-
lzws_compress
|
43
|
-
lzws_compressor_finish
|
44
|
-
|
45
|
-
lzws_decompressor_get_initial_state
|
46
|
-
lzws_decompressor_free_state
|
47
115
|
lzws_decompress
|
48
|
-
|
49
|
-
lzws_compress_file
|
50
116
|
lzws_decompress_file
|
117
|
+
lzws_decompressor_free_state
|
118
|
+
lzws_decompressor_get_initial_state
|
51
119
|
]
|
52
120
|
)
|
53
121
|
|
data/ext/lzws_ext/buffer.c
CHANGED
data/ext/lzws_ext/error.c
CHANGED
data/ext/lzws_ext/gvl.h
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
#if !defined(LZWS_EXT_GVL_H)
|
5
5
|
#define LZWS_EXT_GVL_H
|
6
6
|
|
7
|
-
#
|
7
|
+
#if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL)
|
8
8
|
|
9
9
|
#include "ruby/thread.h"
|
10
10
|
|
@@ -19,6 +19,6 @@
|
|
19
19
|
|
20
20
|
#define LZWS_EXT_GVL_WRAP(_gvl, function, data) function((void*) data);
|
21
21
|
|
22
|
-
#endif
|
22
|
+
#endif // HAVE_RB_THREAD_CALL_WITHOUT_GVL
|
23
23
|
|
24
24
|
#endif // LZWS_EXT_GVL_H
|
data/ext/lzws_ext/io.c
CHANGED
data/ext/lzws_ext/macro.h
CHANGED
data/ext/lzws_ext/main.c
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
// Ruby bindings for lzws library.
|
2
2
|
// Copyright (c) 2019 AUTHORS, MIT License.
|
3
3
|
|
4
|
+
#include <lzws/config.h>
|
5
|
+
|
4
6
|
#include "lzws_ext/buffer.h"
|
5
7
|
#include "lzws_ext/io.h"
|
6
8
|
#include "lzws_ext/option.h"
|
7
9
|
#include "lzws_ext/stream/compressor.h"
|
8
10
|
#include "lzws_ext/stream/decompressor.h"
|
9
11
|
#include "lzws_ext/string.h"
|
10
|
-
#include "ruby.h"
|
11
12
|
|
12
13
|
void Init_lzws_ext()
|
13
14
|
{
|
@@ -19,4 +20,7 @@ void Init_lzws_ext()
|
|
19
20
|
lzws_ext_compressor_exports(root_module);
|
20
21
|
lzws_ext_decompressor_exports(root_module);
|
21
22
|
lzws_ext_string_exports(root_module);
|
23
|
+
|
24
|
+
VALUE version = rb_str_new2(LZWS_VERSION);
|
25
|
+
rb_define_const(root_module, "LIBRARY_VERSION", rb_obj_freeze(version));
|
22
26
|
}
|
data/ext/lzws_ext/option.c
CHANGED
@@ -5,12 +5,10 @@
|
|
5
5
|
|
6
6
|
#include <lzws/buffer.h>
|
7
7
|
#include <lzws/decompressor/main.h>
|
8
|
-
#include <lzws/decompressor/state.h>
|
9
8
|
|
10
9
|
#include "lzws_ext/error.h"
|
11
10
|
#include "lzws_ext/gvl.h"
|
12
11
|
#include "lzws_ext/option.h"
|
13
|
-
#include "ruby.h"
|
14
12
|
|
15
13
|
// -- initialization --
|
16
14
|
|
data/ext/lzws_ext/string.c
CHANGED
data/lib/lzws/stream/abstract.rb
CHANGED
@@ -24,9 +24,7 @@ module LZWS
|
|
24
24
|
|
25
25
|
def initialize(io, options = {})
|
26
26
|
@raw_stream = create_raw_stream
|
27
|
-
|
28
|
-
Validation.validate_io io
|
29
|
-
@io = io
|
27
|
+
@io = io
|
30
28
|
|
31
29
|
@stat = Stat.new @io.stat if @io.respond_to? :stat
|
32
30
|
|
@@ -135,13 +133,19 @@ module LZWS
|
|
135
133
|
end
|
136
134
|
|
137
135
|
def close
|
138
|
-
@io.close
|
136
|
+
@io.close if @io.respond_to? :close
|
139
137
|
|
140
138
|
nil
|
141
139
|
end
|
142
140
|
|
143
141
|
def closed?
|
144
|
-
|
142
|
+
return false unless @raw_stream.closed?
|
143
|
+
|
144
|
+
if @io.respond_to? :closed
|
145
|
+
@io.closed?
|
146
|
+
else
|
147
|
+
true
|
148
|
+
end
|
145
149
|
end
|
146
150
|
|
147
151
|
def to_io
|
data/lib/lzws/stream/reader.rb
CHANGED
@@ -54,6 +54,9 @@ module LZWS
|
|
54
54
|
Validation.validate_not_negative_integer bytes_to_read unless bytes_to_read.nil?
|
55
55
|
Validation.validate_string out_buffer unless out_buffer.nil?
|
56
56
|
|
57
|
+
raise ValidateError, "io should be responsible to read and eof" unless
|
58
|
+
@io.respond_to?(:read) && @io.respond_to?(:eof?)
|
59
|
+
|
57
60
|
unless bytes_to_read.nil?
|
58
61
|
return ::String.new :encoding => ::Encoding::BINARY if bytes_to_read.zero?
|
59
62
|
return nil if eof?
|
@@ -86,16 +89,22 @@ module LZWS
|
|
86
89
|
end
|
87
90
|
|
88
91
|
def eof?
|
92
|
+
raise ValidateError, "io should be responsible to eof" unless @io.respond_to? :eof?
|
93
|
+
|
89
94
|
empty? && @io.eof?
|
90
95
|
end
|
91
96
|
|
92
97
|
# -- asynchronous --
|
93
98
|
|
94
99
|
def readpartial(bytes_to_read, out_buffer = nil)
|
100
|
+
raise ValidateError, "io should be responsible to readpartial" unless @io.respond_to? :readpartial
|
101
|
+
|
95
102
|
read_more_nonblock(bytes_to_read, out_buffer) { @io.readpartial @source_buffer_length }
|
96
103
|
end
|
97
104
|
|
98
105
|
def read_nonblock(bytes_to_read, out_buffer = nil, *options)
|
106
|
+
raise ValidateError, "io should be responsible to read nonblock" unless @io.respond_to? :read_nonblock
|
107
|
+
|
99
108
|
read_more_nonblock(bytes_to_read, out_buffer) { @io.read_nonblock(@source_buffer_length, *options) }
|
100
109
|
end
|
101
110
|
|
data/lib/lzws/stream/writer.rb
CHANGED
@@ -23,6 +23,8 @@ module LZWS
|
|
23
23
|
# -- synchronous --
|
24
24
|
|
25
25
|
def write(*objects)
|
26
|
+
validate_write
|
27
|
+
|
26
28
|
write_remaining_buffer
|
27
29
|
|
28
30
|
bytes_written = 0
|
@@ -38,20 +40,26 @@ module LZWS
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def flush
|
43
|
+
validate_write
|
44
|
+
|
41
45
|
finish :flush
|
42
46
|
|
43
|
-
@io.flush
|
47
|
+
@io.flush if @io.respond_to? :flush
|
44
48
|
|
45
49
|
self
|
46
50
|
end
|
47
51
|
|
48
52
|
def rewind
|
53
|
+
validate_write
|
54
|
+
|
49
55
|
finish :close
|
50
56
|
|
51
57
|
super
|
52
58
|
end
|
53
59
|
|
54
60
|
def close
|
61
|
+
validate_write
|
62
|
+
|
55
63
|
finish :close
|
56
64
|
|
57
65
|
super
|
@@ -75,6 +83,10 @@ module LZWS
|
|
75
83
|
@raw_stream.send(method_name, *args) { |portion| @io.write portion }
|
76
84
|
end
|
77
85
|
|
86
|
+
def validate_write
|
87
|
+
raise ValidateError, "io should be responsible to write" unless @io.respond_to? :write
|
88
|
+
end
|
89
|
+
|
78
90
|
# -- asynchronous --
|
79
91
|
|
80
92
|
# IO write nonblock can raise wait writable error.
|
@@ -83,6 +95,8 @@ module LZWS
|
|
83
95
|
# So we have to accept content after processing IO write nonblock.
|
84
96
|
# It means that first write nonblock won't call IO write nonblock.
|
85
97
|
def write_nonblock(object, *options)
|
98
|
+
validate_write_nonblock
|
99
|
+
|
86
100
|
return 0 unless write_remaining_buffer_nonblock(*options)
|
87
101
|
|
88
102
|
source = transcode object.to_s
|
@@ -93,14 +107,18 @@ module LZWS
|
|
93
107
|
end
|
94
108
|
|
95
109
|
def flush_nonblock(*options)
|
110
|
+
validate_write_nonblock
|
111
|
+
|
96
112
|
return false unless finish_nonblock :flush, *options
|
97
113
|
|
98
|
-
@io.flush
|
114
|
+
@io.flush if @io.respond_to? :flush
|
99
115
|
|
100
116
|
true
|
101
117
|
end
|
102
118
|
|
103
119
|
def rewind_nonblock(*options)
|
120
|
+
validate_write_nonblock
|
121
|
+
|
104
122
|
return false unless finish_nonblock :close, *options
|
105
123
|
|
106
124
|
method(:rewind).super_method.call
|
@@ -109,6 +127,8 @@ module LZWS
|
|
109
127
|
end
|
110
128
|
|
111
129
|
def close_nonblock(*options)
|
130
|
+
validate_write_nonblock
|
131
|
+
|
112
132
|
return false unless finish_nonblock :close, *options
|
113
133
|
|
114
134
|
method(:close).super_method.call
|
@@ -139,6 +159,10 @@ module LZWS
|
|
139
159
|
@raw_stream.send(method_name, *args) { |portion| @buffer << portion }
|
140
160
|
end
|
141
161
|
|
162
|
+
def validate_write_nonblock
|
163
|
+
raise ValidateError, "io should be responsible to write nonblock" unless @io.respond_to? :write_nonblock
|
164
|
+
end
|
165
|
+
|
142
166
|
# -- common --
|
143
167
|
|
144
168
|
protected def transcode(data)
|
data/lib/lzws/validation.rb
CHANGED
@@ -5,41 +5,20 @@ require_relative "error"
|
|
5
5
|
|
6
6
|
module LZWS
|
7
7
|
module Validation
|
8
|
-
IO_METHODS = %i[
|
9
|
-
read
|
10
|
-
write
|
11
|
-
readpartial
|
12
|
-
read_nonblock
|
13
|
-
write_nonblock
|
14
|
-
eof?
|
15
|
-
flush
|
16
|
-
close
|
17
|
-
closed?
|
18
|
-
]
|
19
|
-
.freeze
|
20
|
-
|
21
8
|
def self.validate_bool(value)
|
22
9
|
raise ValidateError, "invalid bool" unless value.is_a?(::TrueClass) || value.is_a?(::FalseClass)
|
23
10
|
end
|
24
11
|
|
25
|
-
def self.
|
26
|
-
raise ValidateError, "invalid
|
12
|
+
def self.validate_hash(value)
|
13
|
+
raise ValidateError, "invalid hash" unless value.is_a? ::Hash
|
27
14
|
end
|
28
15
|
|
29
16
|
def self.validate_not_negative_integer(value)
|
30
17
|
raise ValidateError, "invalid not negative integer" unless value.is_a?(::Integer) && value >= 0
|
31
18
|
end
|
32
19
|
|
33
|
-
def self.
|
34
|
-
raise ValidateError, "invalid
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.validate_io(value)
|
38
|
-
raise ValidateError, "invalid io" unless IO_METHODS.all? { |method| value.respond_to? method }
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.validate_hash(value)
|
42
|
-
raise ValidateError, "invalid hash" unless value.is_a? ::Hash
|
20
|
+
def self.validate_positive_integer(value)
|
21
|
+
raise ValidateError, "invalid positive integer" unless value.is_a?(::Integer) && value.positive?
|
43
22
|
end
|
44
23
|
|
45
24
|
def self.validate_proc(value)
|
@@ -47,5 +26,9 @@ module LZWS
|
|
47
26
|
raise ValidateError, "invalid proc"
|
48
27
|
end
|
49
28
|
end
|
29
|
+
|
30
|
+
def self.validate_string(value)
|
31
|
+
raise ValidateError, "invalid string" unless value.is_a? ::String
|
32
|
+
end
|
50
33
|
end
|
51
34
|
end
|
data/lib/lzws/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lzws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Aladjev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codecov
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '5.
|
61
|
+
version: '5.15'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '5.
|
68
|
+
version: '5.15'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ocg
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1.
|
75
|
+
version: '1.4'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1.
|
82
|
+
version: '1.4'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: parallel
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,56 +128,56 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
131
|
+
version: '1.26'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '1.
|
138
|
+
version: '1.26'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rubocop-minitest
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
145
|
+
version: '0.17'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
152
|
+
version: '0.17'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rubocop-performance
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '1.
|
159
|
+
version: '1.13'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: '1.
|
166
|
+
version: '1.13'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: rubocop-rake
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0.
|
173
|
+
version: '0.6'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0.
|
180
|
+
version: '0.6'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: simplecov
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,7 +241,8 @@ files:
|
|
241
241
|
homepage: https://github.com/andrew-aladev/ruby-lzws
|
242
242
|
licenses:
|
243
243
|
- MIT
|
244
|
-
metadata:
|
244
|
+
metadata:
|
245
|
+
rubygems_mfa_required: 'true'
|
245
246
|
post_install_message:
|
246
247
|
rdoc_options: []
|
247
248
|
require_paths:
|
@@ -257,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
258
|
- !ruby/object:Gem::Version
|
258
259
|
version: '0'
|
259
260
|
requirements: []
|
260
|
-
rubygems_version: 3.
|
261
|
+
rubygems_version: 3.3.7
|
261
262
|
signing_key:
|
262
263
|
specification_version: 4
|
263
264
|
summary: Ruby bindings for lzws library (compatible with UNIX compress).
|