module Sequel::Plugins::UUIDPrefix::InstanceMethods
Public Instance Methods
after_initialize()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/uuid_prefix.rb, line 82 def after_initialize super # set random generated uuid value self[:uuid] ||= Array.new(8) do UUID_TABLE[rand(UUID_TABLE.size)]; end.join end
before_create()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/uuid_prefix.rb, line 74 def before_create if !self.class.find(:uuid=>self[:uuid]).nil? raise UUIDDuplication, "Duplicate UUID: #{self.canonical_uuid} already exists" end super end
before_validation()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/uuid_prefix.rb, line 67 def before_validation # trim uuid prefix if it is in the self[:uuid] self[:uuid].sub!(/^#{self.class.uuid_prefix}-/, '') super end
canonical_uuid()
click to toggle source
Returns canonicalized uuid which has the form of “{uuid_prefix}-{uuid}”.
# File lib/sequel/plugins/uuid_prefix.rb, line 90 def canonical_uuid "#{self.uuid_prefix}-#{self[:uuid]}" end
Also aliased as: cuuid
to_api_document()
click to toggle source
generate API response document. similar to to_hash
() but not to expose integer primary key.
# File lib/sequel/plugins/uuid_prefix.rb, line 125 def to_api_document self.values.dup.merge({:id=>self.canonical_uuid, :uuid=>canonical_uuid}) end
to_hash()
click to toggle source
# File lib/sequel/plugins/uuid_prefix.rb, line 95 def to_hash() r = self.values.dup.merge({id: self.id, uuid: canonical_uuid, class_name: self.class.name.demodulize }) serialize_columns = [] if defined? Sequel::Plugins::Serialization if self.class.plugins.member?(Sequel::Plugins::Serialization) self.class.deserialization_map.keys.each { |c| serialize_columns << c r[c] = self.__send__(c) } end end # convert Sequel::SQL::Blob column. # TODO: look for alternative method to stop to retrieve # db_schema hash. self.class.db_schema.each { |c, v| if v[:db_type] == 'text' && v[:type] == :string && !serialize_columns.member?(c) r[c] = self.__send__(c).to_s end } r end
uuid_prefix()
click to toggle source
read-only instance method to retrieve @uuid_prefix class variable.
# File lib/sequel/plugins/uuid_prefix.rb, line 63 def uuid_prefix self.class.uuid_prefix end