Module: GlobalUid::ActiveRecordExtension::ClassMethods

Defined in:
lib/global_uid/active_record_extension.rb

Instance Method Summary collapse

Instance Method Details

#disable_global_uidObject



46
47
48
# File 'lib/global_uid/active_record_extension.rb', line 46

def disable_global_uid
  @global_uid_disabled = true
end

#ensure_global_uid_tableObject



54
55
56
57
58
59
60
# File 'lib/global_uid/active_record_extension.rb', line 54

def ensure_global_uid_table
  return @global_uid_table_exists if @global_uid_table_exists
  GlobalUid::Base.with_connections do |connection|
    raise "Global UID table #{global_uid_table} not found!" unless connection.table_exists?(global_uid_table)
  end
  @global_uid_table_exists = true
end

#generate_uid(options = {}) ⇒ Object



40
41
42
43
44
# File 'lib/global_uid/active_record_extension.rb', line 40

def generate_uid(options = {})
  uid_table_name  = self.global_uid_table
  self.ensure_global_uid_table
  GlobalUid::Base.get_uid_for_class(self, options)
end

#global_uid_disabledObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/global_uid/active_record_extension.rb', line 28

def global_uid_disabled
  if @global_uid_disabled.nil?
    if superclass.respond_to?(:global_uid_disabled)
      @global_uid_disabled = superclass.send(:global_uid_disabled)
    else
      @global_uid_disabled = false
    end
  end

  @global_uid_disabled
end

#global_uid_tableObject



50
51
52
# File 'lib/global_uid/active_record_extension.rb', line 50

def global_uid_table
  GlobalUid::Base.id_table_from_name(self.table_name)
end