Sha256: c4f4c832dd5739a9d90c8361d7087306505d24cd46519a5e63ed1c1d1a2f32c7
Contents?: true
Size: 760 Bytes
Versions: 5
Compression:
Stored size: 760 Bytes
Contents
require 'base32/crockford' require 'securerandom' module Cirneco module Utils # "ZZZZZZZ" decoded as number UPPER_LIMIT = 34359738367 def get_dois_by_prefix(prefix, options={}) response = get_dois(options) if response.body["data"].present? response.body["data"] = response.body["data"].select { |doi| doi.start_with?(prefix) } end response end def decode_doi(doi) prefix, string = doi.split('/', 2) Base32::Crockford.decode(string, checksum: true).to_i end def encode_doi(prefix, options={}) number = options[:number] || SecureRandom.random_number(UPPER_LIMIT) prefix.to_s + "/" + Base32::Crockford.encode(number, split: 4, length: 8, checksum: true) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
cirneco-0.4.9 | lib/cirneco/utils.rb |
cirneco-0.4.8 | lib/cirneco/utils.rb |
cirneco-0.4.7 | lib/cirneco/utils.rb |
cirneco-0.4.6 | lib/cirneco/utils.rb |
cirneco-0.4.5 | lib/cirneco/utils.rb |