ruby-brs 1.2.1 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7c98f5678a0545688d9a0bb7537d2eb55507559c2f6d61855796983e4b8a763
4
- data.tar.gz: 19bbed82c75ecf25c17a7848b97890dfad5387a3d9244b16db2447bb21425c1b
3
+ metadata.gz: 519776eef000f690d628b64310be61daf3e8cc144a103fa848586f1165e92de9
4
+ data.tar.gz: 8a0f7b24666a6291b10700a6ddf4dfd8afe90e2286750ca02531126348f0a198
5
5
  SHA512:
6
- metadata.gz: c7a82e47ac99a515794cc5e56153d10993b5b87fdb9f091dd04a685689dadcee2aec961b2cefbd1fd9531c457cd45af5d0d05af87178642b5bb545fa2f9f9246
7
- data.tar.gz: 481e233bfd17fe958a384787b2dd0f469b9017d7005cb9c1b88bdf48cad578767c5003e52b53ce6fcda35635a57339115a6cd21f0768281626df99995ee308ee
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 | Related constants |
139
- |-----------|-------------------|
140
- | `mode` | `BRS::Option::MODES` = `%i[text font generic]` |
141
- | `quality` | `BRS::Option::MIN_QUALITY` = 0, `BRS::Option::MAX_QUALITY` = 11 |
142
- | `lgwin` | `BRS::Option::MIN_LGWIN` = 10, `BRS::Option::MAX_LGWIN` = 24 |
143
- | `lgblock` | `BRS::Option::MIN_LGBLOCK` = 16, `BRS::Option::MAX_LGBLOCK` = 24 |
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
@@ -3,8 +3,6 @@
3
3
 
4
4
  #include "brs_ext/buffer.h"
5
5
 
6
- #include "ruby.h"
7
-
8
6
  VALUE brs_ext_create_string_buffer(VALUE length)
9
7
  {
10
8
  return rb_str_new(NULL, NUM2SIZET(length));
data/ext/brs_ext/error.c CHANGED
@@ -3,10 +3,6 @@
3
3
 
4
4
  #include "brs_ext/error.h"
5
5
 
6
- #include <brotli/decode.h>
7
-
8
- #include "ruby.h"
9
-
10
6
  brs_ext_result_t brs_ext_get_decompressor_error(BrotliDecoderErrorCode error_code)
11
7
  {
12
8
  switch (error_code) {
data/ext/brs_ext/io.c CHANGED
@@ -15,7 +15,6 @@
15
15
  #include "brs_ext/gvl.h"
16
16
  #include "brs_ext/macro.h"
17
17
  #include "brs_ext/option.h"
18
- #include "ruby.h"
19
18
  #include "ruby/io.h"
20
19
 
21
20
  // Additional possible results:
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
 
@@ -3,13 +3,10 @@
3
3
 
4
4
  #include "brs_ext/stream/decompressor.h"
5
5
 
6
- #include <brotli/decode.h>
7
-
8
6
  #include "brs_ext/buffer.h"
9
7
  #include "brs_ext/error.h"
10
8
  #include "brs_ext/gvl.h"
11
9
  #include "brs_ext/option.h"
12
- #include "ruby.h"
13
10
 
14
11
  // -- initialization --
15
12
 
data/ext/brs_ext/string.c CHANGED
@@ -13,7 +13,6 @@
13
13
  #include "brs_ext/gvl.h"
14
14
  #include "brs_ext/macro.h"
15
15
  #include "brs_ext/option.h"
16
- #include "ruby.h"
17
16
 
18
17
  // -- buffer --
19
18
 
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, types = [])
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 "brotli/types.h", %w[BROTLI_BOOL]
17
- require_header "brotli/encode.h", ["BrotliEncoderState *", "BrotliEncoderMode"]
18
- require_header "brotli/decode.h", ["BrotliDecoderState *", "BrotliDecoderResult", "BrotliDecoderErrorCode"]
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
- BrotliEncoderDestroyInstance
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
@@ -2,5 +2,5 @@
2
2
  # Copyright (c) 2019 AUTHORS, MIT License.
3
3
 
4
4
  module BRS
5
- VERSION = "1.2.1".freeze
5
+ VERSION = "1.3.0".freeze
6
6
  end
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.2.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-06-04 00:00:00.000000000 Z
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.3'
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.3'
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.16'
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.16'
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.12'
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.12'
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.5'
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.5'
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.15
260
+ rubygems_version: 3.2.22
261
261
  signing_key:
262
262
  specification_version: 4
263
263
  summary: Ruby bindings for brotli library.