Class: PublicUid::SetPublicUid

Inherits:
Object
  • Object
show all
Defined in:
lib/public_uid/set_public_uid.rb

Constant Summary collapse

NewUidNotSetYet =
Class.new(StandardError)
PublicUidColumnDoesNotExist =
Class.new(StandardError)
NoPublicUidColumnSpecified =
Class.new(StandardError)
NoRecordSpecified =
Class.new(StandardError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ SetPublicUid

Returns a new instance of SetPublicUid.



10
11
12
13
14
15
# 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

Instance Attribute Details

#new_uidObject (readonly)

Returns the value of attribute new_uid.



8
9
10
# File 'lib/public_uid/set_public_uid.rb', line 8

def new_uid
  @new_uid
end

Instance Method Details

#generate(generator) ⇒ Object



17
18
19
20
21
# File 'lib/public_uid/set_public_uid.rb', line 17

def generate(generator)
  begin
    @new_uid= generator.generate
  end while similar_uid_exist?
end

#setObject



23
24
25
26
# File 'lib/public_uid/set_public_uid.rb', line 23

def set
  new_uid || raise(NewUidNotSetYet)
  @record.send("#{@column}=", new_uid )
end