multibases 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/.gitignore +9 -9
- data/CHANGELOG.md +10 -0
- data/README.md +13 -5
- data/Rakefile +21 -0
- data/bin/setup +8 -8
- data/lib/multibases/registry.rb +12 -0
- data/lib/multibases/version.rb +1 -1
- data/lib/multibases.rb +0 -2
- data/lib/table.csv +23 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2b0dd76dacf9936bc730a2568740868ffd7da45d0d341bfbde1e7884ccfd162
|
4
|
+
data.tar.gz: b494e77003851e5cc216a163d2b75ef443a05609789de4f4070ed3fa2cc3d3cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c15a0d0e856d94c6edf60c2e2a83d722c2c67527cd1c07b28bb917cb5e73572e834d3662352c3b0afe895e0109fb11d3848194a66477ca28565dabaa99ef925
|
7
|
+
data.tar.gz: 61b9616e4627224d15d76f04c75e621f16059de0128cd2a4f4a7b49cf62513200ef5c418495526b2cb65eebb1fc271cdb27620156c0ce388fa4a550972be4d38
|
data/.gitignore
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
/.bundle/
|
2
|
-
/.yardoc
|
3
|
-
/_yardoc/
|
4
|
-
/coverage/
|
5
|
-
/doc/
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/tmp/
|
9
|
-
Gemfile.lock
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/_yardoc/
|
4
|
+
/coverage/
|
5
|
+
/doc/
|
6
|
+
/pkg/
|
7
|
+
/spec/reports/
|
8
|
+
/tmp/
|
9
|
+
Gemfile.lock
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
# Multibases
|
2
2
|
|
3
|
-
[]
|
6
|
-
[][shield-link-travis]
|
4
|
+
[][shield-link-gem]
|
5
|
+
[][shield-link-license]
|
6
|
+
[][shield-link-codeclimate]
|
7
|
+
|
8
|
+
[shield-link-travis]: https://travis-ci.com/SleeplessByte/ruby-multibase
|
9
|
+
[shield-link-gem]: https://badge.fury.io/rb/multibases
|
10
|
+
[shield-link-license]: http://opensource.org/licenses/MIT
|
11
|
+
[shield-link-codeclimate]: https://codeclimate.com/github/SleeplessByte/ruby-multibase/maintainability
|
7
12
|
|
8
13
|
> Multibase is a protocol for disambiguating the encoding of base-encoded
|
9
14
|
> (e.g., base32, base64, base58, etc.) binary appearing in text.
|
@@ -283,6 +288,7 @@ expected == Multibases::Base16.encode(Multibases::ByteArray.new("abc".bytes))
|
|
283
288
|
## Related
|
284
289
|
|
285
290
|
- [`multiformats/multibase`][git-multibase]: the spec repository
|
291
|
+
- [`multiformats/ruby-multicodec`][git-ruby-multicodec]: the ruby implementation of [`multiformats/multicodec`][git-multicodec]
|
286
292
|
- [`multiformats/ruby-multihash`][git-ruby-multihash]: the ruby implementation of [`multiformats/multihash`][git-multihash]
|
287
293
|
|
288
294
|
## Development
|
@@ -298,7 +304,7 @@ push git commits and tags, and push the `.gem` file to [rubygems.org][web-rubyge
|
|
298
304
|
|
299
305
|
## Contributing
|
300
306
|
|
301
|
-
Bug reports and pull requests are welcome on GitHub at [SleeplessByte/
|
307
|
+
Bug reports and pull requests are welcome on GitHub at [SleeplessByte/ruby-multibase][git-self].
|
302
308
|
This project is intended to be a safe, welcoming space for collaboration, and
|
303
309
|
contributors are expected to adhere to the [Contributor Covenant][web-coc] code
|
304
310
|
of conduct.
|
@@ -316,6 +322,8 @@ issue trackers, chat rooms and mailing lists is expected to follow the
|
|
316
322
|
[spec]: https://github.com/multiformats/multibase
|
317
323
|
[git-self-coc]: https://github.com/SleeplessByte/ruby-multibase/blob/master/CODE_OF_CONDUCT.md
|
318
324
|
[git-self]: https://github.com/SleeplessByte/ruby-multibase
|
325
|
+
[git-ruby-multicodec]: https://github.com/SleeplessByte/ruby-multicodec
|
326
|
+
[git-multicodec]: https://github.com/multiformats/multicodec
|
319
327
|
[git-multibase]: https://github.com/multiformats/multibase
|
320
328
|
[git-multibase-table]: https://github.com/multiformats/multibase/blob/master/multibase.csv
|
321
329
|
[git-ruby-multihash]: https://github.com/multiformats/ruby-multihash
|
data/Rakefile
CHANGED
@@ -9,4 +9,25 @@ Rake::TestTask.new(:test) do |t|
|
|
9
9
|
t.test_files = FileList["test/**/*_test.rb"]
|
10
10
|
end
|
11
11
|
|
12
|
+
Rake::Task.define_task(:update) do |t|
|
13
|
+
require 'open-uri'
|
14
|
+
|
15
|
+
SOURCE_FILE = 'https://raw.githubusercontent.com/multiformats/multibase/master/multibase.csv'
|
16
|
+
SPEC_FILE_FORMAT = 'https://raw.githubusercontent.com/multiformats/multibase/master/tests/test%<index>d.csv'
|
17
|
+
|
18
|
+
File.open(File.join(__dir__, 'lib', 'table.csv'), "wb") do |saved_file|
|
19
|
+
open(SOURCE_FILE, "rb") do |read_file|
|
20
|
+
saved_file.write(read_file.read)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
(1..6).each do |index|
|
25
|
+
File.open(File.join(__dir__, 'test', 'fixtures', format('test%<index>s.csv', index: index)), "wb") do |saved_file|
|
26
|
+
open(format(SPEC_FILE_FORMAT, index: index), "rb") do |read_file|
|
27
|
+
saved_file.write(read_file.read)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
12
33
|
task :default => :test
|
data/bin/setup
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -euo pipefail
|
3
|
-
IFS=$'\n\t'
|
4
|
-
set -vx
|
5
|
-
|
6
|
-
bundle install
|
7
|
-
|
8
|
-
# Do any other automated setup that you need to do here
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
IFS=$'\n\t'
|
4
|
+
set -vx
|
5
|
+
|
6
|
+
bundle install
|
7
|
+
|
8
|
+
# Do any other automated setup that you need to do here
|
data/lib/multibases/registry.rb
CHANGED
@@ -23,6 +23,10 @@ module Multibases
|
|
23
23
|
|
24
24
|
module_function
|
25
25
|
|
26
|
+
def [](entry)
|
27
|
+
find_by(code: entry, encoding: entry)
|
28
|
+
end
|
29
|
+
|
26
30
|
def implement(encoding, code, implementation = nil, alphabet = nil)
|
27
31
|
Multibases::IMPLEMENTATIONS[encoding] = Registration.new(
|
28
32
|
code,
|
@@ -45,6 +49,14 @@ module Multibases
|
|
45
49
|
end
|
46
50
|
end
|
47
51
|
|
52
|
+
def codes
|
53
|
+
Multicodecs::REGISTRATIONS.values.map(&:code)
|
54
|
+
end
|
55
|
+
|
56
|
+
def names
|
57
|
+
Multicodecs::REGISTRATIONS.keys
|
58
|
+
end
|
59
|
+
|
48
60
|
def multibase_version(multibase_semver = nil)
|
49
61
|
return @multibase_version if multibase_semver.nil?
|
50
62
|
|
data/lib/multibases/version.rb
CHANGED
data/lib/multibases.rb
CHANGED
data/lib/table.csv
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
encoding, code, description
|
2
|
+
identity, 0x00, 8-bit binary (encoder and decoder keeps data unmodified)
|
3
|
+
base1, 1, unary (11111)
|
4
|
+
base2, 0, binary (01010101)
|
5
|
+
base8, 7, octal
|
6
|
+
base10, 9, decimal
|
7
|
+
base16, f, hexadecimal
|
8
|
+
base16upper, F, hexadecimal
|
9
|
+
base32hex, v, rfc4648 no padding - highest char
|
10
|
+
base32hexupper, V, rfc4648 no padding - highest char
|
11
|
+
base32hexpad, t, rfc4648 with padding
|
12
|
+
base32hexpadupper, T, rfc4648 with padding
|
13
|
+
base32, b, rfc4648 no padding
|
14
|
+
base32upper, B, rfc4648 no padding
|
15
|
+
base32pad, c, rfc4648 with padding
|
16
|
+
base32padupper, C, rfc4648 with padding
|
17
|
+
base32z, h, z-base-32 (used by Tahoe-LAFS)
|
18
|
+
base58flickr, Z, base58 flicker
|
19
|
+
base58btc, z, base58 bitcoin
|
20
|
+
base64, m, rfc4648 no padding
|
21
|
+
base64pad, M, rfc4648 with padding - MIME encoding
|
22
|
+
base64url, u, rfc4648 no padding
|
23
|
+
base64urlpad, U, rfc4648 with padding
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multibases
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derk-Jan Karrenbeld
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- ".gitignore"
|
68
68
|
- ".rubocop.yml"
|
69
69
|
- ".travis.yml"
|
70
|
+
- CHANGELOG.md
|
70
71
|
- Gemfile
|
71
72
|
- README.md
|
72
73
|
- Rakefile
|
@@ -83,6 +84,7 @@ files:
|
|
83
84
|
- lib/multibases/ord_table.rb
|
84
85
|
- lib/multibases/registry.rb
|
85
86
|
- lib/multibases/version.rb
|
87
|
+
- lib/table.csv
|
86
88
|
- multibases.gemspec
|
87
89
|
homepage: https://github.com/SleeplessByte/ruby-multibase
|
88
90
|
licenses: []
|
@@ -105,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
107
|
- !ruby/object:Gem::Version
|
106
108
|
version: '0'
|
107
109
|
requirements: []
|
108
|
-
rubygems_version: 3.0.
|
110
|
+
rubygems_version: 3.0.3
|
109
111
|
signing_key:
|
110
112
|
specification_version: 4
|
111
113
|
summary: Ruby implementation of the multibase specification
|