module Sequel::Plugins::NonsequentialId::InstanceMethods

Public Instance Methods

around_create() click to toggle source
Calls superclass method
# File lib/sequel/plugins/nonsequential_id.rb, line 18
def around_create
  begin
    set_nonsequential_id
    super
  rescue Sequel::UniqueConstraintViolation => e
    if e.message =~ /\b#{model.table_name}\.#{model.id_field}\b/
      retry
    else
      raise
    end
  end
end

Private Instance Methods

set_nonsequential_id() click to toggle source
# File lib/sequel/plugins/nonsequential_id.rb, line 32
        def set_nonsequential_id
  method = :"#{model.id_field}="
  id = SecureRandom.hex.hex.to_s(36)
  set_column_value(method, id)
end