class PublicUid::SetPublicUid
Constants
- NewUidNotSetYet
- NoPublicUidColumnSpecified
- NoRecordSpecified
- PublicUidColumnDoesNotExist
Attributes
new_uid[R]
Public Class Methods
new(options)
click to toggle source
# File lib/public_uid/set_public_uid.rb, line 10 def initialize(options) @record = options[:record] || raise(NoRecordSpecified) @column = options[:column] || raise(NoPublicUidColumnSpecified) @klass = @record.class check_column_existance end
Public Instance Methods
generate(generator)
click to toggle source
# File lib/public_uid/set_public_uid.rb, line 17 def generate(generator) begin @new_uid= generator.generate end while similar_uid_exist? end
set()
click to toggle source
# File lib/public_uid/set_public_uid.rb, line 23 def set new_uid || raise(NewUidNotSetYet) @record.send("#{@column}=", new_uid ) end
Private Instance Methods
check_column_existance()
click to toggle source
# File lib/public_uid/set_public_uid.rb, line 33 def check_column_existance raise PublicUidColumnDoesNotExist if @klass.column_names.include?(@column) end
similar_uid_exist?()
click to toggle source
# File lib/public_uid/set_public_uid.rb, line 29 def similar_uid_exist? @klass.where(@column => new_uid).exists? end