bitary 0.1.4 → 0.1.5

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: bf08e150b62f660fa24f19420e8f9ec2b4c44a0ff88bc8466a1bc13339de1ee0
4
- data.tar.gz: 5837fb427a2332f8518b8ed247edd4ea750dd63a651a3e546c8efcf783dd9daa
3
+ metadata.gz: 0a3a73becac006670efcdd4a87b36aee0c3c9bc48c50f5cf48d68e47e1e7cad3
4
+ data.tar.gz: e398cc62cdbfc33cf1f48146b59fe655f832b33d59caf8556a7898df1ef4e20d
5
5
  SHA512:
6
- metadata.gz: 564e33ae146b3590d8f41540cde48d3a15dc7536b1dd3592fc0601fc2a85010710a370a1082c0a1134a249f6102526d6b2a859950c179b1b5c59d27ad4111e50
7
- data.tar.gz: 6eeeb1fd6d855b0c87cb8330ea383f3b4136701d028d2996130215a8f5f4edea632a3ca6047bac3fba0a0079d9b83818a3cc0e7fb083ab883a6257a46d3e2e83
6
+ metadata.gz: 5f6d8328faf7a368daf44fc5dafedcfc4456369d2ae48b7a2e3736ad48bea686d76444b3fdd8c7c8d6b34774906e7544cf61cd78905350cfb60c94205916d832
7
+ data.tar.gz: 86f6f32038489a43a9dc18613c536110af4e7aed65e228f2d763f6c472037aba0518ba382566bbe6edeec3ff76491584971c6a0bad64f4efe5dc1d68e443bca4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.1.4] - 2024-03-31
2
+
3
+ - more refactoring of Bitary class
4
+ - fix issue in getting/setting bits when size is not % 8
5
+
1
6
  ## [0.1.3] - 2024-03-29
2
7
 
3
8
  - fix some missing require statements
data/README.md CHANGED
@@ -29,11 +29,11 @@ require 'bitary'
29
29
  bit_array_sz = Bitary.new(128) # give an explicit size. Defaults to 64 bits used per item
30
30
  bit_array_ar = Bitary.new(
31
31
  [255, 10, 20],
32
- bits_per_item: Bitary::BYTE # 8 bits
32
+ bpi: Bitary::BYTE # 8 bits
33
33
  ) # create based on some integer array
34
34
 
35
- bit_array_sz.bits_per_item # 64
36
- bit_array_ar.bits_per_item # 8
35
+ bit_array_sz.bpi # 64
36
+ bit_array_ar.bpi # 8
37
37
 
38
38
  bit_array_ar.size # 128
39
39
  bit_array_ar.size # 24
@@ -57,13 +57,13 @@ bit_array_ar.to_a # [127, 10, 20]
57
57
  bit_array_ar.to_s # "01111111 00001010 00010100"
58
58
 
59
59
  # increase/decrease bits used per item
60
- bit_array_ar.bits_per_item = Bitary::LONG # 64 bits
60
+ bit_array_ar.bpi = Bitary::LONG # 64 bits
61
61
  bit_array_ar.to_a # [8_325_652]
62
62
  bit_array_ar.to_s # "0000000000000000000000000000000000000000011111110000101000010100"
63
63
 
64
- bit_array_sz.bits_per_item # 64
64
+ bit_array_sz.bpi # 64
65
65
  bit_array_sz.to_a # [1_099_511_627_776, 0]
66
- bit_array_sz.bits_per_item = Bitary::INT # 32 bits
66
+ bit_array_sz.bpi = Bitary::INT # 32 bits
67
67
  bit_array_sz.to_a # [256, 0, 0, 0]
68
68
  ```
69
69
 
@@ -70,8 +70,13 @@ class Bitary
70
70
  operate_bit_at!(:unset, index)
71
71
  end
72
72
 
73
- def each_byte(&)
74
- decrease_items_size(@array, Bitary::BYTE, @bpi).each(&)
73
+ def each_byte
74
+ @array.each do |item|
75
+ (@bpi / Bitary::BYTE).times do |i|
76
+ byte = (item >> (@bpi - (Bitary::BYTE * (i + 1))))
77
+ yield byte
78
+ end
79
+ end
75
80
  end
76
81
 
77
82
  def to_s
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Bitary
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maximilien Ballesteros