module UXID

Constants

CROCKFORD_ENCODING
DELIMITER
SIZE_WARNING_MESSAGE
VERSION

Public Class Methods

generate(attrs = {}) click to toggle source
# File lib/uxid.rb, line 25
def self.generate attrs = {}
  model = new attrs
  model.encode
end
new(attrs = {}) click to toggle source
# File lib/uxid.rb, line 30
def self.new attrs = {}
  model = ::UXID::Model.new

  model.time = attrs[:time] || Time.now
  model.prefix = attrs[:prefix] || ""
  model.size = attrs[:size]

  if attrs[:rand_size]
    model.rand_size = attrs[:rand_size]
  else
    case model.size
    when Integer
      puts SIZE_WARNING_MESSAGE
      model.rand_size = model.size

    when String
      puts SIZE_WARNING_MESSAGE
      model.rand_size = 10

    when :xs, :xsmall
      model.rand_size = 0

    when :s, :small
      model.rand_size = 2

    when :m, :medium
      model.rand_size = 5

    when :l, :large
      model.rand_size = 7

    else
      model.rand_size = 10
    end
  end

  model
end