module ActiveRecordUuid::Model::ClassMethods

Public Instance Methods

generate_uuid() click to toggle source
# File lib/active_record_uuid/model.rb, line 48
def generate_uuid
  UUIDTools::UUID.send("#{uuid_config.generator}_create").to_s
end
has_uuid(options = {}) click to toggle source
# File lib/active_record_uuid/model.rb, line 67
def has_uuid(options = {})
  options = ActiveRecordUuid.config.to_hash.merge(options)
  @uuid_config = ActiveRecordUuid::Config.new(options)
  
  column_name = uuid_config.column.to_sym
  self.primary_key              = column_name if uuid_config.primary_key
  self.serialize                column_name, ActiveRecordUuid::Serializer.new(uuid_config.store_as)
  self.send(uuid_config.hook,   :assign_uuid_when_blank)
  self.validates_uniqueness_of  column_name, :if => Proc.new { |r| r.uuid_value.present? }
  self.validate                 :validates_uuid, :if => Proc.new { |r| r.uuid_value.present? }
  self.send(:extend, ActiveRecordUuid::AssociationMethods) if uuid_config.association
end
uuid_config(&block) click to toggle source
# File lib/active_record_uuid/model.rb, line 52
def uuid_config(&block)
  return @uuid_config if @uuid_config.present?
  
  @uuid_config = ActiveRecordUuid::Config.new
  if block_given?
    @uuid_config.instance_eval(&block)
    @uuid_config.validate_options!
  end
  
  # apply uuid based on config
  has_uuid(@uuid_config.to_hash)
  
  @uuid_config
end