ruby-brs 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -6
- data/ext/brs_ext/buffer.c +0 -2
- data/ext/brs_ext/error.c +0 -4
- data/ext/brs_ext/io.c +0 -1
- data/ext/brs_ext/main.c +4 -1
- data/ext/brs_ext/option.c +17 -6
- data/ext/brs_ext/option.h +4 -0
- data/ext/brs_ext/stream/compressor.c +0 -2
- data/ext/brs_ext/stream/decompressor.c +0 -3
- data/ext/brs_ext/string.c +0 -1
- data/ext/extconf.rb +87 -9
- data/lib/brs/option.rb +20 -0
- data/lib/brs/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 519776eef000f690d628b64310be61daf3e8cc144a103fa848586f1165e92de9
|
4
|
+
data.tar.gz: 8a0f7b24666a6291b10700a6ddf4dfd8afe90e2286750ca02531126348f0a198
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1a644ae3619da601177e0985926acffb6a43910c9686dfdb97b33f191814699f0cb6c9e38a5ecedb5f33999ac9cf129d0864bfcb2d065981faf1da61f5ef9c5
|
7
|
+
data.tar.gz: f7cf208285d14a9c2ef5b868dee4c1bf2dbe1262479cc250b6ce48d4c462007da431e8c5322097c8bf71cdef009140625ed8439d0c2a878825a4b502599a2086
|
data/README.md
CHANGED
@@ -118,6 +118,8 @@ end
|
|
118
118
|
| `quality` | 0 - 11 | 11 | compression level |
|
119
119
|
| `lgwin` | 10 - 24 | 22 | compressor window size |
|
120
120
|
| `lgblock` | 16 - 24 | nil (auto) | compressor input block size |
|
121
|
+
| `npostfix` | 0 - 3 | nil (auto) | Recommended number of postfix bits |
|
122
|
+
| `ndirect` | 0 - 120 | nil (auto) | Recommended number of direct distance codes (step 1 << npostfix, max 15 << npostfix) |
|
121
123
|
| `disable_literal_context_modeling` | true/false | false | disables literal context modeling format |
|
122
124
|
| `disable_ring_buffer_reallocation` | true/false | false | disables ring buffer reallocation |
|
123
125
|
| `size_hint` | 0 - inf | 0 (auto) | size of input (if known) |
|
@@ -135,12 +137,14 @@ If `gvl` is enabled ruby won't waste time on acquiring/releasing VM lock.
|
|
135
137
|
|
136
138
|
You can also read brotli docs for more info about options.
|
137
139
|
|
138
|
-
| Option
|
139
|
-
|
140
|
-
| `mode`
|
141
|
-
| `quality`
|
142
|
-
| `lgwin`
|
143
|
-
| `lgblock`
|
140
|
+
| Option | Related constants |
|
141
|
+
|------------|-------------------|
|
142
|
+
| `mode` | `BRS::Option::MODES` = `%i[text font generic]` |
|
143
|
+
| `quality` | `BRS::Option::MIN_QUALITY` = 0, `BRS::Option::MAX_QUALITY` = 11 |
|
144
|
+
| `lgwin` | `BRS::Option::MIN_LGWIN` = 10, `BRS::Option::MAX_LGWIN` = 24 |
|
145
|
+
| `lgblock` | `BRS::Option::MIN_LGBLOCK` = 16, `BRS::Option::MAX_LGBLOCK` = 24 |
|
146
|
+
| `npostfix` | `BRS::Option::MIN_NPOSTFIX` = 0, `BRS::Option::MAX_NPOSTFIX` = 3 |
|
147
|
+
| `ndirect` | `BRS::Option::MIN_NDIRECT` = 0, `BRS::Option::MAX_NDIRECT` = 120, `BRS::Option::NDIRECT_NPOSTFIX_STEP_BASE` = 1, `BRS::Option::NDIRECT_NPOSTFIX_MAX_BASE` = 15 |
|
144
148
|
|
145
149
|
Possible compressor options:
|
146
150
|
```
|
@@ -151,6 +155,8 @@ Possible compressor options:
|
|
151
155
|
:quality
|
152
156
|
:lgwin
|
153
157
|
:lgblock
|
158
|
+
:npostfix
|
159
|
+
:ndirect
|
154
160
|
:disable_literal_context_modeling
|
155
161
|
:size_hint
|
156
162
|
:large_window
|
data/ext/brs_ext/buffer.c
CHANGED
data/ext/brs_ext/error.c
CHANGED
data/ext/brs_ext/io.c
CHANGED
data/ext/brs_ext/main.c
CHANGED
@@ -7,7 +7,6 @@
|
|
7
7
|
#include "brs_ext/stream/compressor.h"
|
8
8
|
#include "brs_ext/stream/decompressor.h"
|
9
9
|
#include "brs_ext/string.h"
|
10
|
-
#include "ruby.h"
|
11
10
|
|
12
11
|
void Init_brs_ext()
|
13
12
|
{
|
@@ -19,4 +18,8 @@ void Init_brs_ext()
|
|
19
18
|
brs_ext_compressor_exports(root_module);
|
20
19
|
brs_ext_decompressor_exports(root_module);
|
21
20
|
brs_ext_string_exports(root_module);
|
21
|
+
|
22
|
+
VALUE version_arguments[] = {INT2FIX(16)};
|
23
|
+
VALUE version = rb_block_call(UINT2NUM(BrotliEncoderVersion()), rb_intern("to_s"), 1, version_arguments, 0, 0);
|
24
|
+
rb_define_const(root_module, "LIBRARY_VERSION", rb_obj_freeze(version));
|
22
25
|
}
|
data/ext/brs_ext/option.c
CHANGED
@@ -3,11 +3,7 @@
|
|
3
3
|
|
4
4
|
#include "brs_ext/option.h"
|
5
5
|
|
6
|
-
#include <brotli/decode.h>
|
7
|
-
#include <brotli/encode.h>
|
8
|
-
|
9
6
|
#include "brs_ext/error.h"
|
10
|
-
#include "ruby.h"
|
11
7
|
|
12
8
|
// -- values --
|
13
9
|
|
@@ -114,6 +110,8 @@ brs_ext_result_t brs_ext_set_compressor_options(BrotliEncoderState* state_ptr, b
|
|
114
110
|
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_QUALITY, options->quality);
|
115
111
|
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_LGWIN, options->lgwin);
|
116
112
|
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_LGBLOCK, options->lgblock);
|
113
|
+
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_NPOSTFIX, options->npostfix);
|
114
|
+
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_NDIRECT, options->ndirect);
|
117
115
|
SET_ENCODER_PARAM(
|
118
116
|
state_ptr, BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING, options->disable_literal_context_modeling);
|
119
117
|
SET_ENCODER_PARAM(state_ptr, BROTLI_PARAM_SIZE_HINT, options->size_hint);
|
@@ -138,6 +136,14 @@ brs_ext_result_t brs_ext_set_decompressor_options(
|
|
138
136
|
|
139
137
|
// -- exports --
|
140
138
|
|
139
|
+
#define BROTLI_MIN_NPOSTFIX 0
|
140
|
+
#define BROTLI_MAX_NPOSTFIX 3
|
141
|
+
|
142
|
+
#define BROTLI_MIN_NDIRECT 0
|
143
|
+
#define BROTLI_NDIRECT_NPOSTFIX_STEP_BASE 1
|
144
|
+
#define BROTLI_NDIRECT_NPOSTFIX_MAX_BASE 0xf
|
145
|
+
#define BROTLI_MAX_NDIRECT (BROTLI_NDIRECT_NPOSTFIX_MAX_BASE << BROTLI_MAX_NPOSTFIX)
|
146
|
+
|
141
147
|
#define EXPORT_PARAM_BOUNDS(module, param, name) \
|
142
148
|
rb_define_const(module, "MIN_" name, UINT2NUM(BROTLI_MIN_##param)); \
|
143
149
|
rb_define_const(module, "MAX_" name, UINT2NUM(BROTLI_MAX_##param));
|
@@ -151,7 +157,12 @@ void brs_ext_option_exports(VALUE root_module)
|
|
151
157
|
rb_define_const(module, "MODES", modes);
|
152
158
|
RB_GC_GUARD(modes);
|
153
159
|
|
154
|
-
EXPORT_PARAM_BOUNDS(module, QUALITY, "QUALITY");
|
155
|
-
EXPORT_PARAM_BOUNDS(module, WINDOW_BITS, "LGWIN");
|
156
160
|
EXPORT_PARAM_BOUNDS(module, INPUT_BLOCK_BITS, "LGBLOCK");
|
161
|
+
EXPORT_PARAM_BOUNDS(module, WINDOW_BITS, "LGWIN");
|
162
|
+
EXPORT_PARAM_BOUNDS(module, QUALITY, "QUALITY");
|
163
|
+
EXPORT_PARAM_BOUNDS(module, NPOSTFIX, "NPOSTFIX");
|
164
|
+
EXPORT_PARAM_BOUNDS(module, NDIRECT, "NDIRECT");
|
165
|
+
|
166
|
+
rb_define_const(module, "NDIRECT_NPOSTFIX_STEP_BASE", UINT2NUM(BROTLI_NDIRECT_NPOSTFIX_STEP_BASE));
|
167
|
+
rb_define_const(module, "NDIRECT_NPOSTFIX_MAX_BASE", UINT2NUM(BROTLI_NDIRECT_NPOSTFIX_MAX_BASE));
|
157
168
|
}
|
data/ext/brs_ext/option.h
CHANGED
@@ -37,6 +37,8 @@ typedef struct
|
|
37
37
|
brs_ext_option_t quality;
|
38
38
|
brs_ext_option_t lgwin;
|
39
39
|
brs_ext_option_t lgblock;
|
40
|
+
brs_ext_option_t npostfix;
|
41
|
+
brs_ext_option_t ndirect;
|
40
42
|
brs_ext_option_t disable_literal_context_modeling;
|
41
43
|
brs_ext_option_t size_hint;
|
42
44
|
brs_ext_option_t large_window;
|
@@ -60,6 +62,8 @@ void brs_ext_resolve_option(VALUE options, brs_ext_option_t* option, brs_ext_opt
|
|
60
62
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, quality); \
|
61
63
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, lgwin); \
|
62
64
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, lgblock); \
|
65
|
+
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, npostfix); \
|
66
|
+
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, ndirect); \
|
63
67
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_BOOL, disable_literal_context_modeling); \
|
64
68
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_UINT, size_hint); \
|
65
69
|
BRS_EXT_RESOLVE_OPTION(options, compressor_options, BRS_EXT_OPTION_TYPE_BOOL, large_window);
|
@@ -3,14 +3,12 @@
|
|
3
3
|
|
4
4
|
#include "brs_ext/stream/compressor.h"
|
5
5
|
|
6
|
-
#include <brotli/encode.h>
|
7
6
|
#include <brotli/types.h>
|
8
7
|
|
9
8
|
#include "brs_ext/buffer.h"
|
10
9
|
#include "brs_ext/error.h"
|
11
10
|
#include "brs_ext/gvl.h"
|
12
11
|
#include "brs_ext/option.h"
|
13
|
-
#include "ruby.h"
|
14
12
|
|
15
13
|
// -- initialization --
|
16
14
|
|
data/ext/brs_ext/string.c
CHANGED
data/ext/extconf.rb
CHANGED
@@ -5,17 +5,93 @@ require "mkmf"
|
|
5
5
|
|
6
6
|
have_func "rb_thread_call_without_gvl", "ruby/thread.h"
|
7
7
|
|
8
|
-
def require_header(name,
|
8
|
+
def require_header(name, constants: [], macroses: [], types: [])
|
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
|
14
22
|
end
|
15
23
|
|
16
|
-
require_header
|
17
|
-
|
18
|
-
|
24
|
+
require_header(
|
25
|
+
"brotli/decode.h",
|
26
|
+
:constants => %w[
|
27
|
+
BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES
|
28
|
+
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP
|
29
|
+
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES
|
30
|
+
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1
|
31
|
+
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2
|
32
|
+
BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS
|
33
|
+
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1
|
34
|
+
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2
|
35
|
+
BROTLI_DECODER_ERROR_FORMAT_CL_SPACE
|
36
|
+
BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT
|
37
|
+
BROTLI_DECODER_ERROR_FORMAT_DICTIONARY
|
38
|
+
BROTLI_DECODER_ERROR_FORMAT_DISTANCE
|
39
|
+
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE
|
40
|
+
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE
|
41
|
+
BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE
|
42
|
+
BROTLI_DECODER_ERROR_FORMAT_PADDING_1
|
43
|
+
BROTLI_DECODER_ERROR_FORMAT_PADDING_2
|
44
|
+
BROTLI_DECODER_ERROR_FORMAT_RESERVED
|
45
|
+
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET
|
46
|
+
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME
|
47
|
+
BROTLI_DECODER_ERROR_FORMAT_TRANSFORM
|
48
|
+
BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS
|
49
|
+
BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION
|
50
|
+
BROTLI_DECODER_PARAM_LARGE_WINDOW
|
51
|
+
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT
|
52
|
+
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT
|
53
|
+
BROTLI_DECODER_RESULT_SUCCESS
|
54
|
+
],
|
55
|
+
:types => [
|
56
|
+
"BrotliDecoderErrorCode",
|
57
|
+
"BrotliDecoderResult",
|
58
|
+
"BrotliDecoderState *"
|
59
|
+
]
|
60
|
+
)
|
61
|
+
require_header(
|
62
|
+
"brotli/encode.h",
|
63
|
+
:constants => %w[
|
64
|
+
BROTLI_MAX_INPUT_BLOCK_BITS
|
65
|
+
BROTLI_MAX_QUALITY
|
66
|
+
BROTLI_MAX_WINDOW_BITS
|
67
|
+
BROTLI_MIN_INPUT_BLOCK_BITS
|
68
|
+
BROTLI_MIN_QUALITY
|
69
|
+
BROTLI_MIN_WINDOW_BITS
|
70
|
+
BROTLI_MODE_FONT
|
71
|
+
BROTLI_MODE_GENERIC
|
72
|
+
BROTLI_MODE_TEXT
|
73
|
+
BROTLI_OPERATION_FINISH
|
74
|
+
BROTLI_OPERATION_FLUSH
|
75
|
+
BROTLI_OPERATION_PROCESS
|
76
|
+
BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING
|
77
|
+
BROTLI_PARAM_LARGE_WINDOW
|
78
|
+
BROTLI_PARAM_LGBLOCK
|
79
|
+
BROTLI_PARAM_LGWIN
|
80
|
+
BROTLI_PARAM_NDIRECT
|
81
|
+
BROTLI_PARAM_NPOSTFIX
|
82
|
+
BROTLI_PARAM_MODE
|
83
|
+
BROTLI_PARAM_QUALITY
|
84
|
+
BROTLI_PARAM_SIZE_HINT
|
85
|
+
],
|
86
|
+
:types => [
|
87
|
+
"BrotliEncoderMode",
|
88
|
+
"BrotliEncoderState *"
|
89
|
+
]
|
90
|
+
)
|
91
|
+
require_header(
|
92
|
+
"brotli/types.h",
|
93
|
+
:macroses => %w[BROTLI_BOOL]
|
94
|
+
)
|
19
95
|
|
20
96
|
def require_library(name, functions)
|
21
97
|
functions.each do |function|
|
@@ -26,12 +102,13 @@ end
|
|
26
102
|
require_library(
|
27
103
|
"brotlienc",
|
28
104
|
%w[
|
29
|
-
BrotliEncoderCreateInstance
|
30
|
-
BrotliEncoderSetParameter
|
31
105
|
BrotliEncoderCompressStream
|
106
|
+
BrotliEncoderCreateInstance
|
107
|
+
BrotliEncoderDestroyInstance
|
32
108
|
BrotliEncoderHasMoreOutput
|
33
109
|
BrotliEncoderIsFinished
|
34
|
-
|
110
|
+
BrotliEncoderSetParameter
|
111
|
+
BrotliEncoderVersion
|
35
112
|
]
|
36
113
|
)
|
37
114
|
|
@@ -39,10 +116,11 @@ require_library(
|
|
39
116
|
"brotlidec",
|
40
117
|
%w[
|
41
118
|
BrotliDecoderCreateInstance
|
42
|
-
BrotliDecoderSetParameter
|
43
119
|
BrotliDecoderDecompressStream
|
44
|
-
BrotliDecoderGetErrorCode
|
45
120
|
BrotliDecoderDestroyInstance
|
121
|
+
BrotliDecoderGetErrorCode
|
122
|
+
BrotliDecoderSetParameter
|
123
|
+
BrotliDecoderVersion
|
46
124
|
]
|
47
125
|
)
|
48
126
|
|
data/lib/brs/option.rb
CHANGED
@@ -16,6 +16,8 @@ module BRS
|
|
16
16
|
:quality => nil,
|
17
17
|
:lgwin => nil,
|
18
18
|
:lgblock => nil,
|
19
|
+
:npostfix => nil,
|
20
|
+
:ndirect => nil,
|
19
21
|
:disable_literal_context_modeling => nil,
|
20
22
|
:large_window => nil
|
21
23
|
}
|
@@ -65,6 +67,24 @@ module BRS
|
|
65
67
|
raise ValidateError, "invalid lgblock" if lgblock < MIN_LGBLOCK || lgblock > MAX_LGBLOCK
|
66
68
|
end
|
67
69
|
|
70
|
+
npostfix = options[:npostfix]
|
71
|
+
unless npostfix.nil?
|
72
|
+
Validation.validate_not_negative_integer npostfix
|
73
|
+
raise ValidateError, "invalid npostfix" if npostfix < MIN_NPOSTFIX || npostfix > MAX_NPOSTFIX
|
74
|
+
end
|
75
|
+
|
76
|
+
ndirect = options[:ndirect]
|
77
|
+
unless ndirect.nil?
|
78
|
+
Validation.validate_not_negative_integer ndirect
|
79
|
+
raise ValidateError, "invalid ndirect" if ndirect < MIN_NDIRECT || ndirect > MAX_NDIRECT
|
80
|
+
|
81
|
+
raise ValidateError, "invalid ndirect" if
|
82
|
+
!npostfix.nil? && (
|
83
|
+
(ndirect - MIN_NDIRECT) % (NDIRECT_NPOSTFIX_STEP_BASE << npostfix) != 0 ||
|
84
|
+
(ndirect - MIN_NDIRECT) > (NDIRECT_NPOSTFIX_MAX_BASE << npostfix)
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
68
88
|
disable_literal_context_modeling = options[:disable_literal_context_modeling]
|
69
89
|
Validation.validate_bool disable_literal_context_modeling unless disable_literal_context_modeling.nil?
|
70
90
|
|
data/lib/brs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-brs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Aladjev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codecov
|
@@ -72,14 +72,14 @@ dependencies:
|
|
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,28 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
131
|
+
version: '1.22'
|
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.22'
|
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.15'
|
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.15'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rubocop-performance
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +170,14 @@ dependencies:
|
|
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
|
@@ -257,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
requirements: []
|
260
|
-
rubygems_version: 3.2.
|
260
|
+
rubygems_version: 3.2.22
|
261
261
|
signing_key:
|
262
262
|
specification_version: 4
|
263
263
|
summary: Ruby bindings for brotli library.
|