base32-url 0.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2636154ecf4c12b4aebc6f7d902512a068caa8d119a66222e4c6bc5f986b550a
4
- data.tar.gz: 1a6f5b368de218189acde3401611f116182e48318739c3b417cd3356cbc9ff09
3
+ metadata.gz: 6700c1c53464c4318f6361ebe22cf4276c925f24bf92cc6fc841e2075c502e6a
4
+ data.tar.gz: 5b58a804226b9714abde687042e207d8d00a10ed0859c716ccefa1c350a7fd69
5
5
  SHA512:
6
- metadata.gz: 017d4b5c6246fbd756c03a39cc6746ccafe5fde79d2620f62321dd2ebc24c9ce4121ca1aecb1f03c26834c636806e0eeec7081f1a9260df8e9bae51d6b8cebac
7
- data.tar.gz: fa73fb138288c1cec305373c74fa5e690129b52a066bf27e754f357912acf37b19767b588bac710dabfd151d6199d8869a2e8ffcf5d72da56c5a82e0c44bb032
6
+ metadata.gz: fa905b9b15aafdeb4ef156da982952e613d397b0f4dda8d5a1145eaeda61b461deeba2410f850564d20246ad5902c84d02d330602d1a30d7b9f9f0ede5b785c4
7
+ data.tar.gz: 1831d2538ff6892222341b9082db32ee93456e9385a0521db10a2549ef50eb7940e2cd57bcce3ae82c98518c010e6508c68994ce325699c6ab38293d45eb7780
@@ -0,0 +1,38 @@
1
+ name: Build
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ pull_request:
7
+ types: [opened, synchronize, reopened]
8
+ jobs:
9
+ sonarcloud:
10
+ name: SonarCloud
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ with:
15
+ fetch-depth: 0
16
+ - name: Set up Ruby 3.1
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 3.1
20
+ - name: Build and test
21
+ run: |
22
+ gem install bundler
23
+ bundle install
24
+ bundle exec rake test
25
+ - name: fix code coverage paths
26
+ working-directory: ./coverage
27
+ run: |
28
+ sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.json
29
+ - name: Upload coverage report
30
+ uses: actions/upload-artifact@v3
31
+ with:
32
+ name: coverage-report
33
+ path: coverage/coverage.json
34
+ - name: SonarCloud Scan
35
+ uses: SonarSource/sonarcloud-github-action@master
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  Gemfile.lock
2
2
  doc
3
3
  pkg
4
+ coverage
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
+ [![Build](https://github.com/front-matter/base32-url/actions/workflows/build.yml/badge.svg)](https://github.com/front-matter/base32-url/actions/workflows/build.yml)
2
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=front-matter_base32-url&metric=coverage)](https://sonarcloud.io/summary/new_code?id=front-matter_base32-url)
3
+ [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=front-matter_base32-url&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=front-matter_base32-url)
1
4
  [![Gem Version](https://badge.fury.io/rb/base32-url.svg)](https://badge.fury.io/rb/base32-url)
2
- [![Build Status](https://travis-ci.org/datacite/base32-url.svg?branch=master)](https://travis-ci.org/datacite/base32-url)
3
5
 
4
6
  An implementation of Douglas Crockfords Base32-Encoding in Ruby, with two modifications to make
5
7
  the resulting strings more URL friendly:
@@ -18,6 +20,7 @@ $ gem install base32-url
18
20
  ## Changes
19
21
 
20
22
  ```
23
+ 0.6.0 - support Ruby versions beyond 2.x
21
24
  0.5.0 - use mod 97-10 (ISO 7064) to calculate checksum
22
25
  0.3.0 - encode into lower case characters, use * ~ _ ^ u for checksum
23
26
  0.2.0 - added optional checksum
data/Rakefile CHANGED
@@ -6,5 +6,4 @@ Bundler::GemHelper.install_tasks
6
6
  require 'rake/testtask'
7
7
  Rake::TestTask.new(:test)
8
8
 
9
- task :default => :test
10
-
9
+ task default: :test
data/base32-url.gemspec CHANGED
@@ -1,26 +1,29 @@
1
- require "date"
2
- require File.expand_path("../lib/base32/version", __FILE__)
1
+ require 'date'
2
+ require File.expand_path('lib/base32/version', __dir__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.authors = "Martin Fenner"
6
- s.email = "mfenner@datacite.org"
7
- s.name = "base32-url"
8
- s.homepage = "https://github.com/datacite/base32-url"
9
- s.summary = "Ruby client library for conversion of DOI Metadata"
5
+ s.authors = 'Martin Fenner'
6
+ s.email = 'martin@front-matter.io'
7
+ s.name = 'base32-url'
8
+ s.homepage = 'https://github.com/front-matter/base32-url'
9
+ s.summary = '32-symbol notation for expressing numbers in a form that can be conveniently and accurately transmitted between humans'
10
10
  s.date = Date.today
11
- s.description = "32-symbol notation for expressing numbers in a form that can be conveniently and accurately transmitted between humans. URL-friendly version of the base32-crockford gem."
12
- s.require_paths = ["lib"]
11
+ s.description = '32-symbol notation for expressing numbers in a form that can be conveniently and accurately transmitted between humans. URL-friendly version of the base32-crockford gem.'
12
+ s.require_paths = ['lib']
13
13
  s.version = Base32::Url::VERSION
14
- s.extra_rdoc_files = ["README.md"]
15
- s.license = 'MIT'
16
- s.required_ruby_version = '~> 2.2'
14
+ s.extra_rdoc_files = ['README.md']
15
+ s.license = 'MIT'
16
+ s.required_ruby_version = '>= 2.6.0'
17
17
 
18
18
  # Declary dependencies here, rather than in the Gemfile
19
- s.add_development_dependency 'bundler', '~> 1.0'
20
- s.add_development_dependency 'rake'
21
- s.add_development_dependency 'test-unit', '~> 3.2.3'
19
+ s.add_development_dependency 'bundler', '>= 1.11', "< 3"
20
+ s.add_development_dependency 'rake', '>= 11.3', "< 14"
21
+ s.add_development_dependency 'rubocop', '~> 1.36'
22
+ s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
23
+ s.add_development_dependency 'simplecov', '0.22.0'
24
+ s.add_development_dependency 'simplecov_json_formatter', '~> 0.1.4'
25
+ s.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.3'
22
26
 
23
- s.require_paths = ["lib"]
24
- s.files = `git ls-files`.split($/)
25
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
+ s.files = `git ls-files`.split($/)
28
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
29
  end
data/lib/base32/url.rb CHANGED
@@ -1,11 +1,10 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
4
  # (c) 2008, Levin Alexander <http://levinalex.net>
4
5
  #
5
6
  # This file is released under the same license as ruby.
6
7
 
7
- require 'enumerator'
8
-
9
8
  module Base32
10
9
  end
11
10
 
@@ -38,12 +37,11 @@ end
38
37
  #
39
38
  class Base32::URL
40
39
  ENCODE_CHARS =
41
- %w(0 1 2 3 4 5 6 7 8 9 a b c d e f g h j k m n p q r s t v w x y z ?)
40
+ %w[0 1 2 3 4 5 6 7 8 9 a b c d e f g h j k m n p q r s t v w x y z ?].freeze
42
41
 
43
- DECODE_MAP = ENCODE_CHARS.to_enum(:each_with_index).reduce({}) do |hsh, (c,i)|
42
+ DECODE_MAP = ENCODE_CHARS.to_enum(:each_with_index).each_with_object({}) do |(c, i), hsh|
44
43
  hsh[c] = i
45
- hsh
46
- end.merge({'i' => 1, 'l' => 1, 'o' => 0})
44
+ end.merge({ 'i' => 1, 'l' => 1, 'o' => 0 })
47
45
 
48
46
  # encodes an integer into a string
49
47
  #
@@ -61,7 +59,7 @@ class Base32::URL
61
59
  #
62
60
  def self.encode(number, opts = {})
63
61
  # verify options
64
- raise ArgumentError unless (opts.keys - [:length, :split, :checksum] == [])
62
+ raise ArgumentError unless opts.keys - %i[length split checksum] == []
65
63
 
66
64
  str = number.to_s(2).reverse.scan(/.{1,5}/).map do |bits|
67
65
  ENCODE_CHARS[bits.reverse.to_i(2)]
@@ -69,15 +67,15 @@ class Base32::URL
69
67
 
70
68
  if opts[:checksum]
71
69
  remainder = 98 - ((number * 100) % 97)
72
- str += sprintf("%02d", remainder)
70
+ str += format('%02d', remainder)
73
71
  end
74
72
 
75
73
  str = str.rjust(opts[:length], '0') if opts[:length]
76
74
 
77
75
  if opts[:split]
78
76
  str = str.reverse
79
- str = str.scan(/.{1,#{opts[:split]}}/).map { |x| x.reverse }
80
- str = str.reverse.join("-")
77
+ str = str.scan(/.{1,#{opts[:split]}}/).map(&:reverse)
78
+ str = str.reverse.join('-')
81
79
  end
82
80
 
83
81
  str
@@ -99,11 +97,14 @@ class Base32::URL
99
97
  # decoded, or if checksum option is used and checksum is incorrect
100
98
 
101
99
  def self.decode(string, opts = {})
102
- string, checksum = string[0..-3], string[-2..-1].to_i if opts[:checksum]
100
+ if opts[:checksum]
101
+ checksum = string[-2..].to_i
102
+ string = string[0..-3]
103
+ end
103
104
 
104
- number = clean(string).split(//).map { |char|
105
+ number = clean(string).split(//).map do |char|
105
106
  DECODE_MAP[char] or return nil
106
- }.inject(0) { |result,val| (result << 5) + val }
107
+ end.inject(0) { |result, val| (result << 5) + val }
107
108
 
108
109
  if opts[:checksum]
109
110
  remainder = 98 - ((number * 100) % 97)
@@ -114,7 +115,7 @@ class Base32::URL
114
115
  end
115
116
 
116
117
  # same as decode, but raises ArgumentError when the string can't be decoded
117
- def self.decode!(string, opts = {})
118
+ def self.decode!(string, _opts = {})
118
119
  decode(string) or raise ArgumentError
119
120
  end
120
121
 
@@ -142,12 +143,12 @@ class Base32::URL
142
143
  # decoded
143
144
  #
144
145
  def self.valid?(string, opts = {})
145
- !(normalize(string, opts) =~ /\?/)
146
+ (normalize(string, opts) !~ /\?/)
146
147
  end
147
148
 
148
149
  class << self
149
150
  def clean(string)
150
- string.gsub(/-/,'').downcase
151
+ string.gsub(/-/, '').downcase
151
152
  end
152
153
  private :clean
153
154
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Base32
2
4
  module Url
3
- VERSION = "0.5"
5
+ VERSION = '0.6.0'
4
6
  end
5
7
  end
data/lib/base32-url.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'base32/url'
@@ -0,0 +1,11 @@
1
+ sonar.organization=front-matter
2
+ sonar.projectKey=front-matter_base32-url
3
+
4
+ # This is the name and version displayed in the SonarCloud UI.
5
+ sonar.projectName=base32-url
6
+ #sonar.projectVersion=1.0
7
+
8
+ # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
9
+ sonar.sources=.
10
+
11
+ sonar.ruby.coverage.reportPaths=coverage/coverage.json
@@ -1,13 +1,17 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ require 'simplecov_json_formatter'
5
+ SimpleCov.formatter = SimpleCov::Formatter::JSONFormatter
6
+ SimpleCov.start
2
7
 
3
8
  require 'test/unit'
4
9
  require 'base32/url'
5
10
 
6
11
  class TestBase32Url < Test::Unit::TestCase
7
-
8
12
  def test_encoding_and_decoding_single_chars
9
13
  from = (0..31).to_a
10
- to = %w(0 1 2 3 4 5 6 7 8 9 a b c d e f g h j k m n p q r s t v w x y z)
14
+ to = %w[0 1 2 3 4 5 6 7 8 9 a b c d e f g h j k m n p q r s t v w x y z]
11
15
 
12
16
  from.zip(to) do |symbol_value, encode_symbol|
13
17
  assert_equal encode_symbol, Base32::URL.encode(symbol_value)
@@ -16,22 +20,22 @@ class TestBase32Url < Test::Unit::TestCase
16
20
  end
17
21
 
18
22
  def test_encoding_larger_numbers
19
- assert_equal("10", Base32::URL.encode(32))
20
- assert_equal("16j", Base32::URL.encode(1234))
23
+ assert_equal('10', Base32::URL.encode(32))
24
+ assert_equal('16j', Base32::URL.encode(1234))
21
25
  end
22
26
 
23
27
  def test_decoding_strings
24
- assert_equal(1234, Base32::URL.decode("16j"))
28
+ assert_equal(1234, Base32::URL.decode('16j'))
25
29
  end
26
30
 
27
31
  def test_decoding_normalizes_symbols
28
32
  assert_equal Base32::URL.decode('11100110'),
29
- Base32::URL.decode('IL1O0ilo')
33
+ Base32::URL.decode('IL1O0ilo')
30
34
  end
31
35
 
32
36
  def test_decoding_lowercase
33
- assert_equal Base32::URL.decode("abcdefghijklmnopqrstvwxyz"),
34
- Base32::URL.decode("ABCDEFGHIJKLMNOPQRSTVWXYZ")
37
+ assert_equal Base32::URL.decode('abcdefghijklmnopqrstvwxyz'),
38
+ Base32::URL.decode('ABCDEFGHIJKLMNOPQRSTVWXYZ')
35
39
  end
36
40
 
37
41
  def test_decoding_invalid_strings
@@ -40,58 +44,58 @@ class TestBase32Url < Test::Unit::TestCase
40
44
  end
41
45
 
42
46
  def test_decode_should_ignore_hyphens
43
- assert_equal 1234, Base32::URL.decode("1-6-j")
47
+ assert_equal 1234, Base32::URL.decode('1-6-j')
44
48
  end
45
49
 
46
50
  def test_normalize
47
- assert_equal "he110w0r1d", Base32::URL.normalize("hello-world")
48
- assert_equal "he110w0r1d", Base32::URL.normalize("HELLO-WORLD")
49
- assert_equal "b?123", Base32::URL.normalize("BU-123")
51
+ assert_equal 'he110w0r1d', Base32::URL.normalize('hello-world')
52
+ assert_equal 'he110w0r1d', Base32::URL.normalize('HELLO-WORLD')
53
+ assert_equal 'b?123', Base32::URL.normalize('BU-123')
50
54
  end
51
55
 
52
56
  def test_normalize_with_checksum
53
- assert_equal "b?1223", Base32::URL.normalize("BU-123", :checksum => true)
54
- assert_equal "b1223", Base32::URL.normalize("B123", :checksum => true)
57
+ assert_equal 'b?1223', Base32::URL.normalize('BU-123', checksum: true)
58
+ assert_equal 'b1223', Base32::URL.normalize('B123', checksum: true)
55
59
  end
56
60
 
57
61
  def test_valid
58
- assert_equal true, Base32::URL.valid?("hello-world")
59
- assert_equal false, Base32::URL.valid?("BU-123")
62
+ assert_equal true, Base32::URL.valid?('hello-world')
63
+ assert_equal false, Base32::URL.valid?('BU-123')
60
64
  end
61
65
 
62
66
  def test_valid_with_checksum
63
- assert_equal true, Base32::URL.valid?("b123u", :checksum => true)
64
- assert_equal false, Base32::URL.valid?("bu-123", :checksum => true)
67
+ assert_equal true, Base32::URL.valid?('b123u', checksum: true)
68
+ assert_equal false, Base32::URL.valid?('bu-123', checksum: true)
65
69
  end
66
70
 
67
71
  def test_length_and_hyphenization
68
- assert_equal "0016j", Base32::URL.encode(1234, :length => 5)
69
- assert_equal "0-01-6j",
70
- Base32::URL.encode(1234, :length => 5, :split => 2)
71
- assert_equal "00-010",
72
- Base32::URL.encode(32, :length => 5, :split => 3)
72
+ assert_equal '0016j', Base32::URL.encode(1234, length: 5)
73
+ assert_equal '0-01-6j',
74
+ Base32::URL.encode(1234, length: 5, split: 2)
75
+ assert_equal '00-010',
76
+ Base32::URL.encode(32, length: 5, split: 3)
73
77
  end
74
78
 
75
79
  def test_encoding_checksum
76
- assert_equal "16j82",
77
- Base32::URL.encode(1234, :checksum => true)
78
- assert_equal "016j82",
79
- Base32::URL.encode(1234, :length => 6, :checksum => true)
80
- assert_equal "01-6j-82",
81
- Base32::URL.encode(1234, :length => 6, :split => 2, :checksum => true)
80
+ assert_equal '16j82',
81
+ Base32::URL.encode(1234, checksum: true)
82
+ assert_equal '016j82',
83
+ Base32::URL.encode(1234, length: 6, checksum: true)
84
+ assert_equal '01-6j-82',
85
+ Base32::URL.encode(1234, length: 6, split: 2, checksum: true)
82
86
  end
83
87
 
84
88
  def test_decoding_checksum
85
89
  assert_equal 1234,
86
- Base32::URL.decode("16j82", :checksum => true)
90
+ Base32::URL.decode('16j82', checksum: true)
87
91
  assert_equal 1234,
88
- Base32::URL.decode("016j82", :length => 6, :checksum => true)
92
+ Base32::URL.decode('016j82', length: 6, checksum: true)
89
93
  assert_equal 1234,
90
- Base32::URL.decode("01-6j-82", :length => 6, :split => 2, :checksum => true)
94
+ Base32::URL.decode('01-6j-82', length: 6, split: 2, checksum: true)
91
95
  end
92
96
 
93
97
  def test_decoding_invalid_checksum
94
98
  assert_equal nil,
95
- Base32::URL.decode("16j44", :checksum => true)
99
+ Base32::URL.decode('16j44', checksum: true)
96
100
  end
97
101
  end
metadata CHANGED
@@ -1,48 +1,119 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: base32-url
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2023-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.11'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.11'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '1.0'
32
+ version: '3'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: '11.3'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '14'
34
43
  type: :development
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '0'
49
+ version: '11.3'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '14'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rubocop
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.36'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '1.36'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rubocop-rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 0.6.0
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 0.6.0
81
+ - !ruby/object:Gem::Dependency
82
+ name: simplecov
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - '='
86
+ - !ruby/object:Gem::Version
87
+ version: 0.22.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '='
93
+ - !ruby/object:Gem::Version
94
+ version: 0.22.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: simplecov_json_formatter
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 0.1.4
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.1.4
41
109
  - !ruby/object:Gem::Dependency
42
110
  name: test-unit
43
111
  requirement: !ruby/object:Gem::Requirement
44
112
  requirements:
45
113
  - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '3.2'
116
+ - - ">="
46
117
  - !ruby/object:Gem::Version
47
118
  version: 3.2.3
48
119
  type: :development
@@ -50,17 +121,21 @@ dependencies:
50
121
  version_requirements: !ruby/object:Gem::Requirement
51
122
  requirements:
52
123
  - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.2'
126
+ - - ">="
53
127
  - !ruby/object:Gem::Version
54
128
  version: 3.2.3
55
129
  description: 32-symbol notation for expressing numbers in a form that can be conveniently
56
130
  and accurately transmitted between humans. URL-friendly version of the base32-crockford
57
131
  gem.
58
- email: mfenner@datacite.org
132
+ email: martin@front-matter.io
59
133
  executables: []
60
134
  extensions: []
61
135
  extra_rdoc_files:
62
136
  - README.md
63
137
  files:
138
+ - ".github/workflows/build.yml"
64
139
  - ".gitignore"
65
140
  - ".travis.yml"
66
141
  - Gemfile
@@ -71,29 +146,31 @@ files:
71
146
  - lib/base32-url.rb
72
147
  - lib/base32/url.rb
73
148
  - lib/base32/version.rb
149
+ - sonar-project.properties
74
150
  - test/test_base32_url.rb
75
- homepage: https://github.com/datacite/base32-url
151
+ homepage: https://github.com/front-matter/base32-url
76
152
  licenses:
77
153
  - MIT
78
154
  metadata: {}
79
- post_install_message:
155
+ post_install_message:
80
156
  rdoc_options: []
81
157
  require_paths:
82
158
  - lib
83
159
  required_ruby_version: !ruby/object:Gem::Requirement
84
160
  requirements:
85
- - - "~>"
161
+ - - ">="
86
162
  - !ruby/object:Gem::Version
87
- version: '2.2'
163
+ version: 2.6.0
88
164
  required_rubygems_version: !ruby/object:Gem::Requirement
89
165
  requirements:
90
166
  - - ">="
91
167
  - !ruby/object:Gem::Version
92
168
  version: '0'
93
169
  requirements: []
94
- rubyforge_project:
95
- rubygems_version: 2.7.4
96
- signing_key:
170
+ rubygems_version: 3.4.8
171
+ signing_key:
97
172
  specification_version: 4
98
- summary: Ruby client library for conversion of DOI Metadata
99
- test_files: []
173
+ summary: 32-symbol notation for expressing numbers in a form that can be conveniently
174
+ and accurately transmitted between humans
175
+ test_files:
176
+ - test/test_base32_url.rb