Module: ActiveRecordUuid::Model::ClassMethods
- Defined in:
- lib/active_record_uuid/model.rb
Instance Method Summary collapse
Instance Method Details
#generate_uuid ⇒ Object
48 49 50 |
# 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 = {}) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/active_record_uuid/model.rb', line 67 def has_uuid( = {}) = ActiveRecordUuid.config.to_hash.merge() @uuid_config = ActiveRecordUuid::Config.new() 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) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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. end # apply uuid based on config has_uuid(@uuid_config.to_hash) @uuid_config end |