bitfifo 0.1.0 → 0.2.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
  SHA1:
3
- metadata.gz: cd36212289b1bb01aafb67ac001e9a4f511b4534
4
- data.tar.gz: eac39808f5e906f7c49ad38592dee9ce8b55f80d
3
+ metadata.gz: bef668257f5a6091c23f5ecc70dbb97b6af7864f
4
+ data.tar.gz: 16629fb342c23d7ac2b1c18c492bf3e31b52e223
5
5
  SHA512:
6
- metadata.gz: 97afebebf73bcd2b6cafc4ed3eba1ccb242de35f1e64d2308b97897d8d7b64b36b6132731d2d191bf2be0c04efb9a0cf12e428a797ae7e75ac3f3ed5aa5a51f7
7
- data.tar.gz: 7a405b407246b9a8aa04245be63bfa090fc8007d50dd2aec67804546617c52d82502e649452073975b8e7a3460386e74fe8f454535ab7d251e7844c0bd704b23
6
+ metadata.gz: fc4138b0d093c8158123578e85b8c646b1ddc141ce40f2c42604ec2553f7ed5f220219eab1a86822916316fcb723b38aa1c228566a71c43c8cd822b05d8bd97e
7
+ data.tar.gz: 9963430512fabd56569f1778db4be2ca4dcaef9a86a2e8444632cf4e366424da700704d9554772f1fbdbc31f04f131ddc83291bb405748c582df8ef368793ff5
data/README.md CHANGED
@@ -67,6 +67,9 @@ The current methods are as follows:
67
67
  #rput(data, nbits=nil) ... reverses bit order of data, then calls #put
68
68
  #get(nbits=1) ... retrieves nbits of data
69
69
  #rget(nbits=1) ... retrieves nbits of data in reverse bit order
70
+ #unget(nbits=1) ... put back data from last #get or #rget. The next #get will return the same data.
71
+ #to_i ... returns internal number with size mask
72
+ #to_i(false) ... returns internal number without size mask
70
73
  #empty? ... true if there is no data in FIFO
71
74
  #empty ... clears all data from FIFO, returns what was cleared.
72
75
 
@@ -74,6 +77,13 @@ The current methods are as follows:
74
77
  # Bitfifo.reverse(data, nbits) ... returns reversed bit order of nbits worth of data. Other bits are masked.
75
78
  ```
76
79
 
80
+ ## Revision History
81
+
82
+ ### Version 0.2.0
83
+
84
+ * added method #unget
85
+ * added method #to_i
86
+
77
87
  ## Development
78
88
 
79
89
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/bitfifo.gemspec CHANGED
@@ -25,4 +25,7 @@ No need to worry about overfill as a Bignum is used to store bits.}
25
25
  spec.add_development_dependency "bundler", "~> 1.11"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency 'byebug', '~> 5.0', '>= 5.0.0'
29
+
30
+
28
31
  end
@@ -1,3 +1,3 @@
1
1
  class Bitfifo
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/bitfifo.rb CHANGED
@@ -17,6 +17,16 @@ class Bitfifo
17
17
  @size = 0
18
18
  self
19
19
  end
20
+
21
+ def to_i(reduce=true)
22
+ if reduce
23
+ size = @size
24
+ rtn = get(size)
25
+ unget(size)
26
+ return rtn
27
+ end
28
+ return @bits
29
+ end
20
30
 
21
31
  def put(data, nb=nil)
22
32
  if nb.nil?
@@ -45,6 +55,11 @@ class Bitfifo
45
55
  rtn
46
56
  end
47
57
 
58
+ def unget(nb=1)
59
+ @size += nb
60
+ self
61
+ end
62
+
48
63
  def rput(data, nb=nil)
49
64
  return put(data) if nb.nil?
50
65
  put(self.class.reverse(data,nb),nb)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitfifo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Colvin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-15 00:00:00.000000000 Z
11
+ date: 2018-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,26 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 5.0.0
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '5.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 5.0.0
55
75
  description: |-
56
76
  Bitfifo implements a FIFO for 1 or more bits of an Integer.
57
77
  This will be needed for a compression and encryption system.