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 +4 -4
- data/README.md +10 -0
- data/bitfifo.gemspec +3 -0
- data/lib/bitfifo/version.rb +1 -1
- data/lib/bitfifo.rb +15 -0
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bef668257f5a6091c23f5ecc70dbb97b6af7864f
|
4
|
+
data.tar.gz: 16629fb342c23d7ac2b1c18c492bf3e31b52e223
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/bitfifo/version.rb
CHANGED
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.
|
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-
|
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.
|