Module: QuickCount

Defined in:
lib/quick_count.rb,
lib/quick_count/railtie.rb,
lib/quick_count/version.rb,
lib/quick_count/active_record.rb,
lib/quick_count/adapters/base.rb,
lib/quick_count/adapters/mysql.rb,
lib/quick_count/adapters/factory.rb,
lib/quick_count/adapters/postgresql.rb

Defined Under Namespace

Modules: ActiveRecord, Adapters Classes: Railtie

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.count_estimate(query, connection: ::ActiveRecord::Base.connection) ⇒ Object



21
22
23
24
# File 'lib/quick_count.rb', line 21

def self.count_estimate(query, connection: ::ActiveRecord::Base.connection)
  adapter = create_adapter(connection: connection)
  adapter.count_estimate(query)
end

.create_adapter(connection:) ⇒ Object



32
33
34
# File 'lib/quick_count.rb', line 32

def self.create_adapter(connection:)
  Adapters::Factory.create(connection: connection)
end

.loadObject



11
12
13
14
# File 'lib/quick_count.rb', line 11

def self.load
  ::ActiveRecord::Base.include QuickCount::ActiveRecord
  ::ActiveRecord::Relation.include QuickCount::ActiveRecord
end

.quick_count(table_name, threshold: nil, connection: ::ActiveRecord::Base.connection) ⇒ Object



16
17
18
19
# File 'lib/quick_count.rb', line 16

def self.quick_count(table_name, threshold: nil, connection: ::ActiveRecord::Base.connection)
  adapter = create_adapter(connection: connection)
  adapter.quick_count(table_name, threshold: threshold)
end

.rootObject



7
8
9
# File 'lib/quick_count.rb', line 7

def self.root
  @root ||= Pathname.new(File.dirname(File.expand_path(File.dirname(__FILE__), '/../')))
end

.supported_databasesObject



26
27
28
# File 'lib/quick_count.rb', line 26

def self.supported_databases
  Adapters::Factory.supported_databases
end