Class: ActiveRecord::SimpleExplain
- Inherits:
-
Object
- Object
- ActiveRecord::SimpleExplain
show all
- Defined in:
- lib/active_record/simple_explain.rb,
lib/active_record/simple_explain/version.rb,
lib/active_record/simple_explain/connection_adapters/mysql_adapter.rb,
lib/active_record/simple_explain/connection_adapters/sqlite3_adapter.rb,
lib/active_record/simple_explain/connection_adapters/adapter_interface.rb,
lib/active_record/simple_explain/connection_adapters/postgresql_adapter.rb
Defined Under Namespace
Modules: AdapterInterface, MysqlAdapter, PostgreSQLAdapter, SQLite3Adapter
Constant Summary
collapse
- VERSION =
"0.0.2"
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(adapter, sql) ⇒ SimpleExplain
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/active_record/simple_explain.rb', line 8
def initialize(adapter, sql)
@adapters = {}
init_adapters
@sql = sql
load_adapter(adapter)
end
|
Instance Attribute Details
#sql ⇒ Object
Returns the value of attribute sql.
18
19
20
|
# File 'lib/active_record/simple_explain.rb', line 18
def sql
@sql
end
|
Instance Method Details
#add_adapter(klass, filename) ⇒ Object
27
28
29
|
# File 'lib/active_record/simple_explain.rb', line 27
def add_adapter(klass, filename)
@adapters[klass] = filename
end
|
#display ⇒ Object
46
47
48
|
# File 'lib/active_record/simple_explain.rb', line 46
def display
puts format(result)
end
|
#filename(adapter) ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/active_record/simple_explain.rb', line 38
def filename(adapter)
if @adapters.has_key? adapter
@adapters[adapter]
else
adapter.underscore
end
end
|
#init_adapters ⇒ Object
20
21
22
23
24
25
|
# File 'lib/active_record/simple_explain.rb', line 20
def init_adapters
%w(SQLite3Adapter sqlite3_adapter
PostgreSQLAdapter postgresql_adapter).each_cons(2) { |k, v|
add_adapter(k, v)
}
end
|
#load_adapter(adapter) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/active_record/simple_explain.rb', line 31
def load_adapter(adapter)
require "active_record/simple_explain/connection_adapters/#{filename(adapter)}"
self.class_eval {
include ActiveRecord::SimpleExplain.const_get(adapter)
}
end
|
#result ⇒ Object
- return
-
Object ( Adapter::Result or Array )
53
54
55
|
# File 'lib/active_record/simple_explain.rb', line 53
def result
ActiveRecord::Base.connection.execute("#{statement} #{sql}")
end
|