byteboozer2 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: ff05a3ba454e03b5bb263f96bae094a8f1dbeb11
4
- data.tar.gz: ed570a340f698b625493d14dbdf90c452352565d
3
+ metadata.gz: 9c51052da3e26265fd79fd43f0105eb84e9c05da
4
+ data.tar.gz: ec7cd1ecba923b64e64b20be49d4836ad1b12edb
5
5
  SHA512:
6
- metadata.gz: 5a026071154ecd1351fe99a05fe100baa9e27e96d2680b03d20f73dea17c2569a87135911d20d75edcff8b7f3ab06d8bf3e331066078fa6409de6f258773ca6a
7
- data.tar.gz: c6345de354bf6e928e91cfad8b76a1a5ac51a3b1a4a0359af370c49182b13a167fb8f6ee5cea9ce7fae09ca5bf9fcfa635605aa5d4e0032705ad2c7601c71f15
6
+ metadata.gz: bc2f4a3f06fa0a7885066c4a88a9f934904c35d5f29699d31cd1bc8f69520d3d4b3474285fbb47978611dbbe4cd82d60ac2ec1e1bd0daeccce374d1908b2b483
7
+ data.tar.gz: c72fbf4aab4a1866dd39eec54e89c23fce574a02cf69ca0c5f44a9c60fafc34ebf7eba00ce258d0a3a3f7664bc79ed0d95572cf105a1cc7a271e8a521b5641f3
data/.rubocop.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  Metrics/AbcSize:
2
2
  Max: 174.1
3
+ Metrics/BlockLength:
4
+ Max: 98
3
5
  Metrics/BlockNesting:
4
6
  Max: 8
5
7
  Metrics/ClassLength:
data/Gemfile.lock CHANGED
@@ -1,55 +1,56 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- byteboozer2 (0.0.1)
5
- activemodel (~> 4.2.6)
4
+ byteboozer2 (0.0.2)
5
+ activemodel (~> 5.1.4)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (4.2.6)
11
- activesupport (= 4.2.6)
12
- builder (~> 3.1)
13
- activesupport (4.2.6)
10
+ activemodel (5.1.4)
11
+ activesupport (= 5.1.4)
12
+ activesupport (5.1.4)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
14
  i18n (~> 0.7)
15
- json (~> 1.7, >= 1.7.7)
16
15
  minitest (~> 5.1)
17
- thread_safe (~> 0.3, >= 0.3.4)
18
16
  tzinfo (~> 1.1)
19
- ast (2.2.0)
20
- awesome_print (1.6.1)
21
- builder (3.2.2)
22
- i18n (0.7.0)
23
- json (1.8.3)
24
- minitest (5.8.4)
25
- parser (2.3.0.7)
26
- ast (~> 2.2)
17
+ ast (2.3.0)
18
+ awesome_print (1.8.0)
19
+ concurrent-ruby (1.0.5)
20
+ i18n (0.9.1)
21
+ concurrent-ruby (~> 1.0)
22
+ json (2.1.0)
23
+ minitest (5.10.3)
24
+ parallel (1.12.0)
25
+ parser (2.4.0.2)
26
+ ast (~> 2.3)
27
27
  powerpack (0.1.1)
28
- rainbow (2.1.0)
29
- rake (11.1.1)
30
- rubocop (0.38.0)
31
- parser (>= 2.3.0.6, < 3.0)
28
+ rainbow (3.0.0)
29
+ rake (12.3.0)
30
+ rubocop (0.52.0)
31
+ parallel (~> 1.10)
32
+ parser (>= 2.4.0.2, < 3.0)
32
33
  powerpack (~> 0.1)
33
- rainbow (>= 1.99.1, < 3.0)
34
+ rainbow (>= 2.2.2, < 4.0)
34
35
  ruby-progressbar (~> 1.7)
35
36
  unicode-display_width (~> 1.0, >= 1.0.1)
36
- ruby-progressbar (1.7.5)
37
- thread_safe (0.3.5)
38
- tzinfo (1.2.2)
37
+ ruby-progressbar (1.9.0)
38
+ thread_safe (0.3.6)
39
+ tzinfo (1.2.4)
39
40
  thread_safe (~> 0.1)
40
- unicode-display_width (1.0.2)
41
+ unicode-display_width (1.3.0)
41
42
 
42
43
  PLATFORMS
43
44
  ruby
44
45
 
45
46
  DEPENDENCIES
46
- awesome_print (~> 1.6.1)
47
- bundler (~> 1.11.2)
47
+ awesome_print (~> 1.8.0)
48
+ bundler (~> 1.16.0)
48
49
  byteboozer2!
49
- json (~> 1.8.3)
50
- minitest (~> 5.8.4)
51
- rake (~> 11.1.1)
52
- rubocop (~> 0.38.0)
50
+ json (~> 2.1.0)
51
+ minitest (~> 5.10.3)
52
+ rake (~> 12.3.0)
53
+ rubocop (~> 0.52.0)
53
54
 
54
55
  BUNDLED WITH
55
- 1.11.2
56
+ 1.16.0
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (C) 2016 Pawel Krol
3
+ Copyright (C) 2016, 2017 Pawel Krol
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # ByteBoozer2
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/byteboozer2.svg)](https://rubygems.org/gems/byteboozer2)
4
+
3
5
  `ByteBoozer2` package provides a native Ruby port of David Malmborg's [ByteBoozer 2.0](http://csdb.dk/release/?id=145031), a data cruncher for Commodore files written in C.
4
6
 
5
7
  ## Version
6
8
 
7
- Version 0.01 (2016-03-28)
9
+ Version 0.0.2 (2017-12-13)
8
10
 
9
11
  ## Description
10
12
 
@@ -17,7 +19,7 @@ Compressed data is by default written into a file named with `.b2` suffix. Targe
17
19
  Add this line to your application's Gemfile:
18
20
 
19
21
  ```ruby
20
- gem 'byteboozer2', '~> 0.0.1'
22
+ gem 'byteboozer2', '~> 0.0.2'
21
23
  ```
22
24
 
23
25
  And then execute:
data/Rakefile CHANGED
@@ -14,4 +14,4 @@ Gem::PackageTask.new(spec).define
14
14
  require 'rubocop/rake_task'
15
15
  RuboCop::RakeTask.new
16
16
 
17
- task default: [:rubocop, :test]
17
+ task default: %i[rubocop test]
data/byteboozer2.gemspec CHANGED
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'byteboozer2/version'
@@ -19,12 +18,12 @@ Gem::Specification.new do |spec|
19
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
19
  spec.require_paths = ['lib']
21
20
 
22
- spec.add_development_dependency 'awesome_print', '~> 1.6.1'
23
- spec.add_development_dependency 'bundler', '~> 1.11.2'
24
- spec.add_development_dependency 'json', '~> 1.8.3'
25
- spec.add_development_dependency 'minitest', '~> 5.8.4'
26
- spec.add_development_dependency 'rake', '~> 11.1.1'
27
- spec.add_development_dependency 'rubocop', '~> 0.38.0'
21
+ spec.add_development_dependency 'awesome_print', '~> 1.8.0'
22
+ spec.add_development_dependency 'bundler', '~> 1.16.0'
23
+ spec.add_development_dependency 'json', '~> 2.1.0'
24
+ spec.add_development_dependency 'minitest', '~> 5.10.3'
25
+ spec.add_development_dependency 'rake', '~> 12.3.0'
26
+ spec.add_development_dependency 'rubocop', '~> 0.52.0'
28
27
 
29
- spec.add_runtime_dependency 'activemodel', '~> 4.2.6'
28
+ spec.add_runtime_dependency 'activemodel', '~> 5.1.4'
30
29
  end
data/lib/byteboozer2.rb CHANGED
@@ -15,7 +15,7 @@ module ByteBoozer2
15
15
 
16
16
  def self.logger
17
17
  @logger ||= Logger.new('byteboozer2.log').tap do |log|
18
- log.level = Logger::DEBUG
18
+ log.level = Logger::WARN
19
19
  log.progname = 'ByteBoozer2'
20
20
  end
21
21
  end
@@ -155,7 +155,7 @@ module ByteBoozer2
155
155
  elsif len >= 128 && len <= 255
156
156
  14
157
157
  else
158
- ByteBoozer2.logger.warn 'cost_of_length got wrong value: #{len}'
158
+ ByteBoozer2.logger.warn "cost_of_length got wrong value: #{len}"
159
159
  10_000
160
160
  end
161
161
  end
@@ -204,7 +204,7 @@ module ByteBoozer2
204
204
  return NUM_BITS_LONG_3 if cond_long_3(offset)
205
205
  end
206
206
 
207
- ByteBoozer2.logger.warn 'cost_of_offset got wrong offset: #{offset}'
207
+ ByteBoozer2.logger.warn "cost_of_offset got wrong offset: #{offset}"
208
208
  10_000
209
209
  end
210
210
 
@@ -266,14 +266,12 @@ module ByteBoozer2
266
266
 
267
267
  longest_match = 0
268
268
 
269
- if @rle_info[get].length == 0 # No RLE-match here...
269
+ if @rle_info[get].length.zero? # No RLE-match here...
270
270
  # Scan until start of file, or max offset
271
271
  while get - scn <= MAX_OFFSET && scn > 0 && longest_match < 255
272
272
  # OK, we have a match of length 2 or longer, but max 255 or file start
273
273
  len = 2
274
- while len < 255 && scn >= len && @ibuf[scn - len] == @ibuf[get - len]
275
- len += 1
276
- end
274
+ len += 1 while len < 255 && scn >= len && @ibuf[scn - len] == @ibuf[get - len]
277
275
 
278
276
  # Calc offset
279
277
  offset = get - scn
@@ -283,7 +281,7 @@ module ByteBoozer2
283
281
  longest_match = len
284
282
 
285
283
  # Store the match only if first (= best) of this length
286
- while len >= 2 && matches[len].length == 0
284
+ while len >= 2 && matches[len].length.zero?
287
285
  # If len == 2, check against short offset!
288
286
  if len > 2 || (len == 2 && offset <= MAX_OFFSET_SHORT)
289
287
  matches[len].length = len
@@ -345,15 +343,13 @@ module ByteBoozer2
345
343
  offset = get - scn + @rle_info[scn].length - rle_len
346
344
 
347
345
  if offset <= MAX_OFFSET
348
- while len < 255 && get >= offset + len && @ibuf[get - offset - len] == @ibuf[get - len]
349
- len += 1
350
- end
346
+ len += 1 while len < 255 && get >= offset + len && @ibuf[get - offset - len] == @ibuf[get - len]
351
347
 
352
348
  if len > longest_match
353
349
  longest_match = len
354
350
 
355
351
  # Store the match only if first (= best) of this length
356
- while len >= 2 && matches[len].length == 0
352
+ while len >= 2 && matches[len].length.zero?
357
353
  # If len == 2, check against short offset!
358
354
  if len > 2 || (len == 2 && offset <= MAX_OFFSET_SHORT)
359
355
  matches[len].length = len
@@ -386,7 +382,7 @@ module ByteBoozer2
386
382
  len = matches[i].length
387
383
  offset = matches[i].offset
388
384
 
389
- next if len == 0
385
+ next if len.zero?
390
386
  target_i = get - len + 1
391
387
  target = @context[target_i]
392
388
 
@@ -408,7 +404,7 @@ module ByteBoozer2
408
404
 
409
405
  # If literal run is first or cheapest way to get here, then update node
410
406
  this = @context[get]
411
- if this.cost == 0 || this.cost >= lit_cost
407
+ if this.cost.zero? || this.cost >= lit_cost
412
408
  this.cost = lit_cost
413
409
  this.next = get + 1
414
410
  this.lit_len = lit_len
@@ -457,19 +453,19 @@ module ByteBoozer2
457
453
  while get > 0
458
454
  cur = ((cur << 8) | @ibuf[get - 1]) & 0xffff
459
455
 
460
- if @first[cur] == 0
456
+ if @first[cur].zero?
461
457
  @first[cur] = @last[cur] = get
462
458
  else
463
459
  @link[@last[cur]] = get
464
460
  @last[cur] = get
465
461
  end
466
462
 
467
- get -= @rle_info[get].length == 0 ? 1 : @rle_info[get].length - 1 # if RLE-match...
463
+ get -= @rle_info[get].length.zero? ? 1 : @rle_info[get].length - 1 # if RLE-match...
468
464
  end
469
465
  end
470
466
 
471
467
  def wbit(bit)
472
- if @cur_cnt == 0
468
+ if @cur_cnt.zero?
473
469
  @obuf[@cur_index] = @cur_byte
474
470
  @cur_index = @put
475
471
  @cur_cnt = 8
@@ -503,15 +499,15 @@ module ByteBoozer2
503
499
  end
504
500
 
505
501
  def wlength(len)
506
- # return if len == 0 # Should never happen
502
+ # return if len.zero? # Should never happen
507
503
 
508
504
  bit = 0x80
509
- bit >>= 1 while len & bit == 0
505
+ bit >>= 1 while (len & bit).zero?
510
506
 
511
507
  while bit > 1
512
508
  wbit(1)
513
509
  bit >>= 1
514
- wbit(len & bit == 0 ? 0 : 1)
510
+ wbit((len & bit).zero? ? 0 : 1)
515
511
  end
516
512
 
517
513
  wbit(0) if len < 0x80
@@ -558,29 +554,28 @@ module ByteBoozer2
558
554
  end
559
555
 
560
556
  # First write number of bits
561
- wbit(i & 2 == 0 ? 0 : 1)
562
- wbit(i & 1 == 0 ? 0 : 1)
557
+ wbit((i & 2).zero? ? 0 : 1)
558
+ wbit((i & 1).zero? ? 0 : 1)
563
559
 
560
+ b = 1 << n
564
561
  if n >= 8 # Offset is 2 bytes
565
562
 
566
563
  # Then write the bits less than 8
567
- b = 1 << n
568
564
  while b > 0x100
569
565
  b >>= 1
570
- wbit(b & offset == 0 ? 0 : 1)
566
+ wbit((b & offset).zero? ? 0 : 1)
571
567
  end
572
568
 
573
569
  # Finally write a whole byte, if necessary
574
570
  wbyte(offset & 255 ^ 255) # Inverted (!)
575
- offset >>= 8
571
+ # offset >>= 8
576
572
 
577
573
  else # Offset is 1 byte
578
574
 
579
575
  # Then write the bits less than 8
580
- b = 1 << n
581
576
  while b > 1
582
577
  b >>= 1
583
- wbit(b & offset == 0 ? 1 : 0) # Inverted (!)
578
+ wbit((b & offset).zero? ? 1 : 0) # Inverted (!)
584
579
  end
585
580
  end
586
581
  end
@@ -604,11 +599,11 @@ module ByteBoozer2
604
599
  lit_len = @context[i].lit_len
605
600
  offset = @context[i].offset
606
601
 
607
- if lit_len == 0
602
+ if lit_len.zero?
608
603
  # Put match
609
604
  len = link - i
610
605
 
611
- ByteBoozer2.logger.debug format('$%04x: Mat(%i, %i)', i, len, offset)
606
+ ByteBoozer2.logger.debug format('$%<i>04x: Mat(%<len>i, %<offset>i)', i: i, len: len, offset: offset)
612
607
 
613
608
  wbit(1) if need_copy_bit
614
609
  wlength(len - 1)
@@ -624,7 +619,7 @@ module ByteBoozer2
624
619
  while lit_len > 0
625
620
  len = lit_len < 255 ? lit_len : 255
626
621
 
627
- ByteBoozer2.logger.debug format('$%04x: Lit(%i)', i, len)
622
+ ByteBoozer2.logger.debug format('$%<i>04x: Lit(%<len>i)', i: i, len: len)
628
623
 
629
624
  wbit(0)
630
625
  wlength(len)
@@ -1,3 +1,3 @@
1
1
  module ByteBoozer2
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
data/src/decruncher.inc CHANGED
@@ -1,160 +1,160 @@
1
- ; ByteBoozer 2.0 Decruncher (C) 2014 David Malmborg
2
-
3
- ; call: Y = AddrLo
4
- ; X = AddrHi
5
-
6
- ;Variables.. #Bytes
7
- zp_base = $02 ; -
8
- bits = zp_base ;1
9
- put = zp_base+2 ;2
10
-
11
- #macro GetNextBit() {.(
12
- asl bits
13
- bne DgEnd
14
- jsr GetNewBits
15
- DgEnd
16
- .)}
17
-
18
- #macro GetLen() {.(
19
- lda #1
20
- GlLoop
21
- .GetNextBit()
22
- bcc GlEnd
23
- .GetNextBit()
24
- rol
25
- bpl GlLoop
26
- GlEnd
27
- .)}
28
-
29
- Decrunch
30
- sty Get1+1
31
- sty Get2+1
32
- sty Get3+1
33
- stx Get1+2
34
- stx Get2+2
35
- stx Get3+2
36
-
37
- ldx #0
38
- jsr GetNewBits
39
- sty put-1,x
40
- cpx #2
41
- bcc *-7
42
- lda #$80
43
- sta bits
44
- DLoop
45
- .GetNextBit()
46
- bcs Match
47
- Literal
48
- ; Literal run.. get length.
49
- .GetLen()
50
- sta LLen+1
51
-
52
- ldy #0
53
- LLoop
54
- Get3 lda $feed,x
55
- inx
56
- bne *+5
57
- jsr GnbInc
58
- L1 sta (put),y
59
- iny
60
- LLen cpy #0
61
- bne LLoop
62
-
63
- clc
64
- tya
65
- adc put
66
- sta put
67
- bcc *+4
68
- inc put+1
69
-
70
- iny
71
- beq DLoop
72
-
73
- ; Has to continue with a match..
74
-
75
- Match
76
- ; Match.. get length.
77
- .GetLen()
78
- sta MLen+1
79
-
80
- ; Length 255 -> EOF
81
- cmp #$ff
82
- beq End
83
-
84
- ; Get num bits
85
- cmp #2
86
- lda #0
87
- rol
88
- .GetNextBit()
89
- rol
90
- .GetNextBit()
91
- rol
92
- tay
93
- lda Tab,y
94
- beq M8
95
-
96
- ; Get bits < 8
97
- M_1 .GetNextBit()
98
- rol
99
- bcs M_1
100
- bmi MShort
101
- M8
102
- ; Get byte
103
- eor #$ff
104
- tay
105
- Get2 lda $feed,x
106
- inx
107
- bne *+5
108
- jsr GnbInc
109
- jmp Mdone
110
- MShort
111
- ldy #$ff
112
- Mdone
113
- ;clc
114
- adc put
115
- sta MLda+1
116
- tya
117
- adc put+1
118
- sta MLda+2
119
-
120
- ldy #$ff
121
- MLoop iny
122
- MLda lda $beef,y
123
- sta (put),y
124
- MLen cpy #0
125
- bne MLoop
126
-
127
- ;sec
128
- tya
129
- adc put
130
- sta put
131
- bcc *+4
132
- inc put+1
133
-
134
- jmp DLoop
135
-
136
- End rts
137
-
138
- GetNewBits
139
- Get1 ldy $feed,x
140
- sty bits
141
- rol bits
142
- inx
143
- bne GnbEnd
144
- GnbInc inc Get1+2
145
- inc Get2+2
146
- inc Get3+2
147
- GnbEnd
148
- rts
149
-
150
- Tab
151
- ; Short offsets
152
- .byte %11011111 ; 3
153
- .byte %11111011 ; 6
154
- .byte %00000000 ; 8
155
- .byte %10000000 ; 10
156
- ; Long offsets
157
- .byte %11101111 ; 4
158
- .byte %11111101 ; 7
159
- .byte %10000000 ; 10
160
- .byte %11110000 ; 13
1
+ ; ByteBoozer 2.0 Decruncher (C) 2014 David Malmborg
2
+
3
+ ; call: Y = AddrLo
4
+ ; X = AddrHi
5
+
6
+ ;Variables.. #Bytes
7
+ zp_base = $02 ; -
8
+ bits = zp_base ;1
9
+ put = zp_base+2 ;2
10
+
11
+ #macro GetNextBit() {.(
12
+ asl bits
13
+ bne DgEnd
14
+ jsr GetNewBits
15
+ DgEnd
16
+ .)}
17
+
18
+ #macro GetLen() {.(
19
+ lda #1
20
+ GlLoop
21
+ .GetNextBit()
22
+ bcc GlEnd
23
+ .GetNextBit()
24
+ rol
25
+ bpl GlLoop
26
+ GlEnd
27
+ .)}
28
+
29
+ Decrunch
30
+ sty Get1+1
31
+ sty Get2+1
32
+ sty Get3+1
33
+ stx Get1+2
34
+ stx Get2+2
35
+ stx Get3+2
36
+
37
+ ldx #0
38
+ jsr GetNewBits
39
+ sty put-1,x
40
+ cpx #2
41
+ bcc *-7
42
+ lda #$80
43
+ sta bits
44
+ DLoop
45
+ .GetNextBit()
46
+ bcs Match
47
+ Literal
48
+ ; Literal run.. get length.
49
+ .GetLen()
50
+ sta LLen+1
51
+
52
+ ldy #0
53
+ LLoop
54
+ Get3 lda $feed,x
55
+ inx
56
+ bne *+5
57
+ jsr GnbInc
58
+ L1 sta (put),y
59
+ iny
60
+ LLen cpy #0
61
+ bne LLoop
62
+
63
+ clc
64
+ tya
65
+ adc put
66
+ sta put
67
+ bcc *+4
68
+ inc put+1
69
+
70
+ iny
71
+ beq DLoop
72
+
73
+ ; Has to continue with a match..
74
+
75
+ Match
76
+ ; Match.. get length.
77
+ .GetLen()
78
+ sta MLen+1
79
+
80
+ ; Length 255 -> EOF
81
+ cmp #$ff
82
+ beq End
83
+
84
+ ; Get num bits
85
+ cmp #2
86
+ lda #0
87
+ rol
88
+ .GetNextBit()
89
+ rol
90
+ .GetNextBit()
91
+ rol
92
+ tay
93
+ lda Tab,y
94
+ beq M8
95
+
96
+ ; Get bits < 8
97
+ M_1 .GetNextBit()
98
+ rol
99
+ bcs M_1
100
+ bmi MShort
101
+ M8
102
+ ; Get byte
103
+ eor #$ff
104
+ tay
105
+ Get2 lda $feed,x
106
+ inx
107
+ bne *+5
108
+ jsr GnbInc
109
+ jmp Mdone
110
+ MShort
111
+ ldy #$ff
112
+ Mdone
113
+ ;clc
114
+ adc put
115
+ sta MLda+1
116
+ tya
117
+ adc put+1
118
+ sta MLda+2
119
+
120
+ ldy #$ff
121
+ MLoop iny
122
+ MLda lda $beef,y
123
+ sta (put),y
124
+ MLen cpy #0
125
+ bne MLoop
126
+
127
+ ;sec
128
+ tya
129
+ adc put
130
+ sta put
131
+ bcc *+4
132
+ inc put+1
133
+
134
+ jmp DLoop
135
+
136
+ End rts
137
+
138
+ GetNewBits
139
+ Get1 ldy $feed,x
140
+ sty bits
141
+ rol bits
142
+ inx
143
+ bne GnbEnd
144
+ GnbInc inc Get1+2
145
+ inc Get2+2
146
+ inc Get3+2
147
+ GnbEnd
148
+ rts
149
+
150
+ Tab
151
+ ; Short offsets
152
+ .byte %11011111 ; 3
153
+ .byte %11111011 ; 6
154
+ .byte %00000000 ; 8
155
+ .byte %10000000 ; 10
156
+ ; Long offsets
157
+ .byte %11101111 ; 4
158
+ .byte %11111101 ; 7
159
+ .byte %10000000 ; 10
160
+ .byte %11110000 ; 13
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.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawel Krol
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-29 00:00:00.000000000 Z
11
+ date: 2017-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -16,98 +16,98 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.6.1
19
+ version: 1.8.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.6.1
26
+ version: 1.8.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.11.2
33
+ version: 1.16.0
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.11.2
40
+ version: 1.16.0
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: 1.8.3
47
+ version: 2.1.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: 1.8.3
54
+ version: 2.1.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.8.4
61
+ version: 5.10.3
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.8.4
68
+ version: 5.10.3
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: 11.1.1
75
+ version: 12.3.0
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: 11.1.1
82
+ version: 12.3.0
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.38.0
89
+ version: 0.52.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.38.0
96
+ version: 0.52.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: 4.2.6
103
+ version: 5.1.4
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: 4.2.6
110
+ version: 5.1.4
111
111
  description: This is a native Ruby port of David Malmborg's ByteBoozer 2.0.
112
112
  email:
113
113
  - djgruby@gmail.com