Module: UIDAttribute

Defined in:
lib/uid_attribute/version.rb,
lib/uid_attribute.rb

Overview

UIDAttribute version

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

:nodoc:



6
7
8
9
# File 'lib/uid_attribute.rb', line 6

def self.included( klass ) # :nodoc:
  klass.extend ClassMethods
  klass.send(:install_uid_attribute)
end

Instance Method Details

#initialize(*args) ⇒ Object

/class_methods



49
50
51
52
53
54
# File 'lib/uid_attribute.rb', line 49

def initialize(*args) # :nodoc:
  # hyjack including class initializer to set UID too
  ret = super(*args)
  set_uid
  ret
end

#set_uidObject

:call-seq: set_uid

set :uid_attribute



61
62
63
64
65
66
67
68
69
# File 'lib/uid_attribute.rb', line 61

def set_uid
  klass = self.class
  has_uid_accessors?

  uid = klass.uid_object ?  UUIDTools::UUID.md5_create(UUIDTools::UUID_OID_NAMESPACE, self.inspect) :
    UUIDTools::UUID.random_create.to_s

  send("#{klass.uid_attr}=", uid)
end