module Usesguid::ActiveRecordExtensions::ClassMethods
Public Instance Methods
assign_guid()
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 40 def assign_guid self[ActiveRecord::Base.guid_column] ||= (ActiveRecord::Base.guid_generator == :database ? UUID.send( "#{ActiveRecord::Base.connection.adapter_name.downcase}_create" ) : UUID.timestamp_create).send( "to_#{ActiveRecord::Base.guid_compression}" ) end
guid_column()
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 28 def guid_column; class_eval { @guid_column || 'id' } end
guid_column=(column)
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 27 def guid_column=(column); class_eval { @guid_column = column } end
guid_compression()
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 25 def guid_compression; class_eval { @guid_compression || 's' } end
guid_compression=(compression)
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 24 def guid_compression=(compression); class_eval { @guid_compression = compression } end
guid_generator()
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 22 def guid_generator; class_eval { @guid_generator || :timestamp } end
guid_generator=(generator)
click to toggle source
guid_generator
can be :timestamp or :mysql
# File lib/usesguid/active_record_extensions.rb, line 21 def guid_generator=(generator); class_eval { @guid_generator = generator } end
usesguid(options = {})
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 30 def usesguid(options = {}) options[:as] ||= :primary_key class_eval do if options[:as] == :primary_key && options[:column] self.primary_key = options[:column] end before_validation :assign_guid def assign_guid self[ActiveRecord::Base.guid_column] ||= (ActiveRecord::Base.guid_generator == :database ? UUID.send( "#{ActiveRecord::Base.connection.adapter_name.downcase}_create" ) : UUID.timestamp_create).send( "to_#{ActiveRecord::Base.guid_compression}" ) end end end
validate_guid( options={} )
click to toggle source
# File lib/usesguid/active_record_extensions.rb, line 50 def validate_guid( options={} ) validates_presence_of( ActiveRecord::Base.guid_column ) validates_uniqueness_of( ActiveRecord::Base.guid_column ) validates_length_of( ActiveRecord::Base.guid_column, :maximum => (ActiveRecord::Base.guid_compression == 's22' ? 22 : 36), :allow_blank => true ) end