byteboozer2 0.0.2 → 0.0.3
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 +5 -5
- data/.rubocop.yml +25 -1
- data/Gemfile +2 -0
- data/Gemfile.lock +34 -29
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/Rakefile +3 -1
- data/bin/console +1 -0
- data/byteboozer2.gemspec +9 -7
- data/lib/byteboozer2.rb +2 -0
- data/lib/byteboozer2/cruncher.rb +10 -6
- data/lib/byteboozer2/file.rb +2 -0
- data/lib/byteboozer2/version.rb +3 -1
- metadata +15 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: dbf1aef43636f8e97d4f5455ab686b26ec9178015d72691a264e7c347b870f40
|
|
4
|
+
data.tar.gz: 41a54e4535336cb26a059f1f14bb621a42347161031ead60b4f8b10613cd15ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b77297af1967a4a85a8ed5e808741ba525010839747f6b18f5826fa8fc7adbe320ce6a30b69e75cefb55d746dc4d966691a25e7a75f3226ed36cf3a1b31009b
|
|
7
|
+
data.tar.gz: 67d94857a6d068e36b2df2f8da539d56f52308ba1e2045b4124d952b201087bed218dd26c6e31286650754f2d40536526ea540ffafc39c6a1b89100640d9b3c8
|
data/.rubocop.yml
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
|
2
|
+
Enabled: true
|
|
3
|
+
Layout/SpaceAroundMethodCallOperator:
|
|
4
|
+
Enabled: true
|
|
5
|
+
Lint/DeprecatedOpenSSLConstant:
|
|
6
|
+
Enabled: true
|
|
7
|
+
Lint/RaiseException:
|
|
8
|
+
Enabled: true
|
|
9
|
+
Lint/StructNewOverride:
|
|
10
|
+
Enabled: true
|
|
1
11
|
Metrics/AbcSize:
|
|
2
12
|
Max: 174.1
|
|
3
13
|
Metrics/BlockLength:
|
|
@@ -14,5 +24,19 @@ Metrics/MethodLength:
|
|
|
14
24
|
Max: 116
|
|
15
25
|
Metrics/PerceivedComplexity:
|
|
16
26
|
Max: 48
|
|
27
|
+
Naming/MethodParameterName:
|
|
28
|
+
AllowedNames:
|
|
29
|
+
- b
|
|
30
|
+
- o
|
|
31
|
+
Style/ExponentialNotation:
|
|
32
|
+
Enabled: true
|
|
33
|
+
Style/HashEachMethods:
|
|
34
|
+
Enabled: true
|
|
35
|
+
Style/HashTransformKeys:
|
|
36
|
+
Enabled: true
|
|
37
|
+
Style/HashTransformValues:
|
|
38
|
+
Enabled: true
|
|
39
|
+
Style/SlicingWithRange:
|
|
40
|
+
Enabled: true
|
|
17
41
|
Style/ZeroLengthPredicate:
|
|
18
|
-
Enabled:
|
|
42
|
+
Enabled: true
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,56 +1,61 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
byteboozer2 (0.0.
|
|
5
|
-
activemodel (~>
|
|
4
|
+
byteboozer2 (0.0.3)
|
|
5
|
+
activemodel (~> 6.0.3.1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activemodel (
|
|
11
|
-
activesupport (=
|
|
12
|
-
activesupport (
|
|
10
|
+
activemodel (6.0.3.1)
|
|
11
|
+
activesupport (= 6.0.3.1)
|
|
12
|
+
activesupport (6.0.3.1)
|
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
|
-
i18n (
|
|
14
|
+
i18n (>= 0.7, < 2)
|
|
15
15
|
minitest (~> 5.1)
|
|
16
16
|
tzinfo (~> 1.1)
|
|
17
|
-
|
|
17
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
|
18
|
+
ast (2.4.0)
|
|
18
19
|
awesome_print (1.8.0)
|
|
19
|
-
concurrent-ruby (1.
|
|
20
|
-
i18n (
|
|
20
|
+
concurrent-ruby (1.1.6)
|
|
21
|
+
i18n (1.8.2)
|
|
21
22
|
concurrent-ruby (~> 1.0)
|
|
22
|
-
json (2.
|
|
23
|
-
minitest (5.
|
|
24
|
-
parallel (1.
|
|
25
|
-
parser (2.
|
|
26
|
-
ast (~> 2.
|
|
27
|
-
powerpack (0.1.1)
|
|
23
|
+
json (2.3.0)
|
|
24
|
+
minitest (5.14.1)
|
|
25
|
+
parallel (1.19.1)
|
|
26
|
+
parser (2.7.1.3)
|
|
27
|
+
ast (~> 2.4.0)
|
|
28
28
|
rainbow (3.0.0)
|
|
29
|
-
rake (
|
|
30
|
-
|
|
29
|
+
rake (13.0.1)
|
|
30
|
+
rexml (3.2.4)
|
|
31
|
+
rubocop (0.84.0)
|
|
31
32
|
parallel (~> 1.10)
|
|
32
|
-
parser (>= 2.
|
|
33
|
-
powerpack (~> 0.1)
|
|
33
|
+
parser (>= 2.7.0.1)
|
|
34
34
|
rainbow (>= 2.2.2, < 4.0)
|
|
35
|
+
rexml
|
|
36
|
+
rubocop-ast (>= 0.0.3)
|
|
35
37
|
ruby-progressbar (~> 1.7)
|
|
36
|
-
unicode-display_width (
|
|
37
|
-
|
|
38
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
39
|
+
rubocop-ast (0.0.3)
|
|
40
|
+
parser (>= 2.7.0.1)
|
|
41
|
+
ruby-progressbar (1.10.1)
|
|
38
42
|
thread_safe (0.3.6)
|
|
39
|
-
tzinfo (1.2.
|
|
43
|
+
tzinfo (1.2.7)
|
|
40
44
|
thread_safe (~> 0.1)
|
|
41
|
-
unicode-display_width (1.
|
|
45
|
+
unicode-display_width (1.7.0)
|
|
46
|
+
zeitwerk (2.3.0)
|
|
42
47
|
|
|
43
48
|
PLATFORMS
|
|
44
49
|
ruby
|
|
45
50
|
|
|
46
51
|
DEPENDENCIES
|
|
47
52
|
awesome_print (~> 1.8.0)
|
|
48
|
-
bundler (~> 1.
|
|
53
|
+
bundler (~> 2.1.4)
|
|
49
54
|
byteboozer2!
|
|
50
|
-
json (~> 2.
|
|
51
|
-
minitest (~> 5.
|
|
52
|
-
rake (~>
|
|
53
|
-
rubocop (~> 0.
|
|
55
|
+
json (~> 2.3.0)
|
|
56
|
+
minitest (~> 5.14.1)
|
|
57
|
+
rake (~> 13.0.1)
|
|
58
|
+
rubocop (~> 0.84.0)
|
|
54
59
|
|
|
55
60
|
BUNDLED WITH
|
|
56
|
-
1.
|
|
61
|
+
2.1.4
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## Version
|
|
8
8
|
|
|
9
|
-
Version 0.0.
|
|
9
|
+
Version 0.0.3 (2020-05-27)
|
|
10
10
|
|
|
11
11
|
## Description
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ Compressed data is by default written into a file named with `.b2` suffix. Targe
|
|
|
19
19
|
Add this line to your application's Gemfile:
|
|
20
20
|
|
|
21
21
|
```ruby
|
|
22
|
-
gem 'byteboozer2', '~> 0.0.
|
|
22
|
+
gem 'byteboozer2', '~> 0.0.3'
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
And then execute:
|
data/Rakefile
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'bundler/gem_tasks'
|
|
2
4
|
require 'rake/testtask'
|
|
3
5
|
|
|
@@ -8,7 +10,7 @@ Rake::TestTask.new(:test) do |t|
|
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
require 'rubygems/package_task'
|
|
11
|
-
spec = Gem::Specification.load(File.expand_path('
|
|
13
|
+
spec = Gem::Specification.load(File.expand_path('byteboozer2.gemspec', __dir__))
|
|
12
14
|
Gem::PackageTask.new(spec).define
|
|
13
15
|
|
|
14
16
|
require 'rubocop/rake_task'
|
data/bin/console
CHANGED
data/byteboozer2.gemspec
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
5
|
require 'byteboozer2/version'
|
|
4
6
|
|
|
@@ -19,11 +21,11 @@ Gem::Specification.new do |spec|
|
|
|
19
21
|
spec.require_paths = ['lib']
|
|
20
22
|
|
|
21
23
|
spec.add_development_dependency 'awesome_print', '~> 1.8.0'
|
|
22
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
|
23
|
-
spec.add_development_dependency 'json', '~> 2.
|
|
24
|
-
spec.add_development_dependency 'minitest', '~> 5.
|
|
25
|
-
spec.add_development_dependency 'rake', '~>
|
|
26
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
|
24
|
+
spec.add_development_dependency 'bundler', '~> 2.1.4'
|
|
25
|
+
spec.add_development_dependency 'json', '~> 2.3.0'
|
|
26
|
+
spec.add_development_dependency 'minitest', '~> 5.14.1'
|
|
27
|
+
spec.add_development_dependency 'rake', '~> 13.0.1'
|
|
28
|
+
spec.add_development_dependency 'rubocop', '~> 0.84.0'
|
|
27
29
|
|
|
28
|
-
spec.add_runtime_dependency 'activemodel', '~>
|
|
30
|
+
spec.add_runtime_dependency 'activemodel', '~> 6.0.3.1'
|
|
29
31
|
end
|
data/lib/byteboozer2.rb
CHANGED
data/lib/byteboozer2/cruncher.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'active_model'
|
|
2
4
|
require 'ostruct'
|
|
3
5
|
|
|
@@ -260,7 +262,7 @@ module ByteBoozer2
|
|
|
260
262
|
end
|
|
261
263
|
|
|
262
264
|
cur = (cur << 8) & 0xffff # Table 65536 lookup
|
|
263
|
-
cur |= @ibuf[get - 1] if get
|
|
265
|
+
cur |= @ibuf[get - 1] if get.positive?
|
|
264
266
|
scn = @first[cur]
|
|
265
267
|
scn = @link[scn]
|
|
266
268
|
|
|
@@ -268,7 +270,7 @@ module ByteBoozer2
|
|
|
268
270
|
|
|
269
271
|
if @rle_info[get].length.zero? # No RLE-match here...
|
|
270
272
|
# Scan until start of file, or max offset
|
|
271
|
-
while get - scn <= MAX_OFFSET && scn
|
|
273
|
+
while get - scn <= MAX_OFFSET && scn.positive? && longest_match < 255
|
|
272
274
|
# OK, we have a match of length 2 or longer, but max 255 or file start
|
|
273
275
|
len = 2
|
|
274
276
|
len += 1 while len < 255 && scn >= len && @ibuf[scn - len] == @ibuf[get - len]
|
|
@@ -316,7 +318,7 @@ module ByteBoozer2
|
|
|
316
318
|
end
|
|
317
319
|
|
|
318
320
|
# Search for more RLE-matches, scan until start of file, or max offset...
|
|
319
|
-
while get - scn <= MAX_OFFSET && scn
|
|
321
|
+
while get - scn <= MAX_OFFSET && scn.positive? && longest_match < 255
|
|
320
322
|
|
|
321
323
|
# Check for longer matches with same value and after...
|
|
322
324
|
# FIXME: That is not what it does, is it?!
|
|
@@ -383,6 +385,7 @@ module ByteBoozer2
|
|
|
383
385
|
offset = matches[i].offset
|
|
384
386
|
|
|
385
387
|
next if len.zero?
|
|
388
|
+
|
|
386
389
|
target_i = get - len + 1
|
|
387
390
|
target = @context[target_i]
|
|
388
391
|
|
|
@@ -392,6 +395,7 @@ module ByteBoozer2
|
|
|
392
395
|
|
|
393
396
|
# If this match is first or cheapest way to get here, then update node
|
|
394
397
|
next if target.cost != 0 && target.cost <= current_cost
|
|
398
|
+
|
|
395
399
|
target.cost = current_cost
|
|
396
400
|
target.next = get + 1
|
|
397
401
|
target.lit_len = 0
|
|
@@ -426,7 +430,7 @@ module ByteBoozer2
|
|
|
426
430
|
def setup_help_structures
|
|
427
431
|
# Setup RLE-info
|
|
428
432
|
get = @ibuf_size - 1
|
|
429
|
-
while get
|
|
433
|
+
while get.positive?
|
|
430
434
|
|
|
431
435
|
cur = @ibuf[get]
|
|
432
436
|
if cur == @ibuf[get - 1]
|
|
@@ -450,7 +454,7 @@ module ByteBoozer2
|
|
|
450
454
|
get = @ibuf_size - 1
|
|
451
455
|
cur = @ibuf[get]
|
|
452
456
|
|
|
453
|
-
while get
|
|
457
|
+
while get.positive?
|
|
454
458
|
cur = ((cur << 8) | @ibuf[get - 1]) & 0xffff
|
|
455
459
|
|
|
456
460
|
if @first[cur].zero?
|
|
@@ -616,7 +620,7 @@ module ByteBoozer2
|
|
|
616
620
|
# Put literal
|
|
617
621
|
need_copy_bit = false
|
|
618
622
|
|
|
619
|
-
while lit_len
|
|
623
|
+
while lit_len.positive?
|
|
620
624
|
len = lit_len < 255 ? lit_len : 255
|
|
621
625
|
|
|
622
626
|
ByteBoozer2.logger.debug format('$%<i>04x: Lit(%<len>i)', i: i, len: len)
|
data/lib/byteboozer2/file.rb
CHANGED
data/lib/byteboozer2/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: byteboozer2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pawel Krol
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-05-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: awesome_print
|
|
@@ -30,84 +30,84 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 2.1.4
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 2.1.4
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: json
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 2.
|
|
47
|
+
version: 2.3.0
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 2.
|
|
54
|
+
version: 2.3.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: minitest
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 5.
|
|
61
|
+
version: 5.14.1
|
|
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.14.1
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rake
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
75
|
+
version: 13.0.1
|
|
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:
|
|
82
|
+
version: 13.0.1
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: rubocop
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.
|
|
89
|
+
version: 0.84.0
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.
|
|
96
|
+
version: 0.84.0
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: activemodel
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: 6.0.3.1
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: 6.0.3.1
|
|
111
111
|
description: This is a native Ruby port of David Malmborg's ByteBoozer 2.0.
|
|
112
112
|
email:
|
|
113
113
|
- djgruby@gmail.com
|
|
@@ -149,8 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
149
149
|
- !ruby/object:Gem::Version
|
|
150
150
|
version: '0'
|
|
151
151
|
requirements: []
|
|
152
|
-
|
|
153
|
-
rubygems_version: 2.4.8
|
|
152
|
+
rubygems_version: 3.1.2
|
|
154
153
|
signing_key:
|
|
155
154
|
specification_version: 4
|
|
156
155
|
summary: A data cruncher for Commodore files written in pure Ruby
|