commonmeta-ruby 3.0.7 → 3.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/commonmeta +1 -1
- data/lib/commonmeta/cli.rb +2 -2
- data/lib/commonmeta/utils.rb +2 -2
- data/lib/commonmeta/version.rb +1 -1
- data/spec/cli_spec.rb +14 -0
- data/spec/utils_spec.rb +3 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20990b6d7886c09275212fc7d92b3a0450a38e9f6f903f011ad560c58dce13b5
|
4
|
+
data.tar.gz: 768648c8a29a23744b6f5f371e5950af7e7a038864d7c4b9686ae533a2441e81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7d38f03cc79506b8dc32c39fcbe0d353c0da9fde8da49c7e73c4c5bcf513dbb80129a39533a5b69a11bd88b12a257e8901050e5956be6b52f9c0e774f04a8f8
|
7
|
+
data.tar.gz: 12a2a786ae08af6d8d796886eb183b415e37fefa43cd98c7407acf14ca7afe56f7b448aaa2c463e1706e47e9b1bff9fcfae89736e1e3376908af8ef93dcfe5b8
|
data/Gemfile.lock
CHANGED
data/bin/commonmeta
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require File.expand_path("../../lib/commonmeta", __FILE__)
|
4
4
|
|
5
|
-
if (ARGV & %w(--version -v help --help encode decode)).empty?
|
5
|
+
if (ARGV & %w(--version -v help --help encode decode encode_id decode_id)).empty?
|
6
6
|
Commonmeta::CLI.start(ARGV.dup.unshift("convert"))
|
7
7
|
else
|
8
8
|
Commonmeta::CLI.start
|
data/lib/commonmeta/cli.rb
CHANGED
@@ -64,7 +64,7 @@ module Commonmeta
|
|
64
64
|
desc '', 'encode_id'
|
65
65
|
|
66
66
|
def encode_id
|
67
|
-
puts
|
67
|
+
puts encode_container_id
|
68
68
|
end
|
69
69
|
|
70
70
|
desc '', 'decode'
|
@@ -76,7 +76,7 @@ module Commonmeta
|
|
76
76
|
desc '', 'decode_id'
|
77
77
|
|
78
78
|
def decode_id(id)
|
79
|
-
puts
|
79
|
+
puts decode_container_id(id)
|
80
80
|
end
|
81
81
|
|
82
82
|
default_task :convert
|
data/lib/commonmeta/utils.rb
CHANGED
@@ -1351,14 +1351,14 @@ module Commonmeta
|
|
1351
1351
|
Base32::URL.decode(suffix)
|
1352
1352
|
end
|
1353
1353
|
|
1354
|
-
def
|
1354
|
+
def encode_container_id
|
1355
1355
|
# suffix has 5 digits plus two checksum digits. With base32 there are
|
1356
1356
|
# 32 possible digits, so 5 digits gives 32^5 possible combinations
|
1357
1357
|
random_int = SecureRandom.random_number(32 ** 4..(32 ** 5) - 1)
|
1358
1358
|
Base32::URL.encode(random_int, checksum: true)
|
1359
1359
|
end
|
1360
1360
|
|
1361
|
-
def
|
1361
|
+
def decode_container_id(id)
|
1362
1362
|
Base32::URL.decode(id)
|
1363
1363
|
end
|
1364
1364
|
end
|
data/lib/commonmeta/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -306,4 +306,18 @@ describe Commonmeta::CLI do
|
|
306
306
|
expect { subject.decode input }.to output(/464528469187255429864\n/).to_stdout
|
307
307
|
end
|
308
308
|
end
|
309
|
+
|
310
|
+
describe "encode_id" do
|
311
|
+
it "random" do
|
312
|
+
expect { subject.encode_id }.to output(/[a-z0-9]+/).to_stdout
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
describe "decode_id" do
|
317
|
+
let(:input) { "h49ct36" }
|
318
|
+
|
319
|
+
it "blog post" do
|
320
|
+
expect { subject.decode_id input }.to output(/18397685862\n/).to_stdout
|
321
|
+
end
|
322
|
+
end
|
309
323
|
end
|
data/spec/utils_spec.rb
CHANGED
@@ -631,20 +631,20 @@ describe Commonmeta::Metadata, vcr: true do
|
|
631
631
|
|
632
632
|
context 'random id' do
|
633
633
|
it 'encode id' do
|
634
|
-
response = subject.
|
634
|
+
response = subject.encode_container_id
|
635
635
|
expect(response).to match(%r{[a-z0-9]+})
|
636
636
|
expect(response.length).to eq(7)
|
637
637
|
end
|
638
638
|
|
639
639
|
it 'decode id' do
|
640
640
|
id= '4425y27'
|
641
|
-
response = subject.
|
641
|
+
response = subject.decode_container_id(id)
|
642
642
|
expect(response).to eq(4_431_476_807)
|
643
643
|
end
|
644
644
|
|
645
645
|
it 'decode another id' do
|
646
646
|
id = 'gr1by89'
|
647
|
-
response = subject.
|
647
|
+
response = subject.decode_container_id(id)
|
648
648
|
expect(response).to eq(17_986_615_561)
|
649
649
|
end
|
650
650
|
end
|