Module: PublicId::Util

Defined in:
lib/public_id/util.rb

Class Method Summary collapse

Class Method Details

.generate_prefix(klass, joiner) ⇒ Object



6
7
8
# File 'lib/public_id/util.rb', line 6

def self.generate_prefix(klass, joiner)
  klass.to_s.demodulize.underscore.first(3) + joiner
end

.generate_random_suffix(length) ⇒ Object



3
4
5
# File 'lib/public_id/util.rb', line 3

def self.generate_random_suffix(length)
  SecureRandom.urlsafe_base64(length)
end

.new_public_id(klass, options = {}) ⇒ Object



9
10
11
12
13
14
# File 'lib/public_id/util.rb', line 9

def self.new_public_id(klass, options = {})
  length = options[:length] || 10
  prefix = options.fetch(:prefix, generate_prefix(klass, options.fetch(:joiner, '-') ))
  suffix = generate_random_suffix(length)
  "#{prefix ? prefix : ''}#{suffix}"
end