Module: GlobalUid::ActiveRecordExtension::ClassMethods

Defined in:
lib/global_uid/active_record_extension.rb

Instance Method Summary collapse

Instance Method Details

#disable_global_uidObject



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

def disable_global_uid
  @global_uid_disabled = true
end

#enable_global_uidObject



54
55
56
# File 'lib/global_uid/active_record_extension.rb', line 54

def enable_global_uid
  @global_uid_disabled = false
end

#ensure_global_uid_tableObject



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/global_uid/active_record_extension.rb', line 62

def ensure_global_uid_table
  return @global_uid_table_exists if @global_uid_table_exists
  GlobalUid::Base.with_connections do |connection|
    if ActiveRecord::VERSION::MAJOR >= 5
      raise "Global UID table #{global_uid_table} not found!" unless connection.schema_cache.data_source_exists?(global_uid_table.to_s)
    else
      raise "Global UID table #{global_uid_table} not found!" unless connection.schema_cache.table_exists?(global_uid_table.to_s)
    end
  end
  @global_uid_table_exists = true
end

#generate_many_uids(count, options = {}) ⇒ Object



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

def generate_many_uids(count, options = {})
  ensure_global_uid_table
  GlobalUid::Base.get_many_uids_for_class(self, count, options)
end

#generate_uid(options = {}) ⇒ Object



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

def generate_uid(options = {})
  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



58
59
60
# File 'lib/global_uid/active_record_extension.rb', line 58

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