Class: ActiveRecord::View::Introspection::SQLite3
- Inherits:
-
Abstract
- Object
- Abstract
- ActiveRecord::View::Introspection::SQLite3
show all
- Defined in:
- lib/activerecord/view/introspection/sqlite3.rb
Constant Summary
collapse
- SQL_DEFINITION =
/\ACREATE\s+VIEW.+?\bAS\b\s+(.+)\z/i
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Abstract
#arel_cast, #arel_fn, #arel_quoted, #arel_quoted?, #default_connection, #definition_for, #inspect, #select_manager, #views
Instance Attribute Details
#master_table ⇒ Arel::Table
19
20
21
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 19
def master_table
@_master_table ||= Arel::Table.new 'sqlite_master', self
end
|
Instance Method Details
#fetch_view_definition_query(view_name, **options) ⇒ Object
13
14
15
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 13
def fetch_view_definition_query(view_name, **options)
master_table.project(sql_definition).where(type_is_view.and(view_name_eq(view_name)))
end
|
#process_view_definition(result) ⇒ Object
7
8
9
10
11
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 7
def process_view_definition(result)
return result if result.blank?
result[SQL_DEFINITION, 1]
end
|
#sql_definition ⇒ Object
23
24
25
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 23
def sql_definition
master_table[:sql]
end
|
#type_is_view ⇒ Arel::Nodes::Equality
32
33
34
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 32
def type_is_view
master_table[:type].eq('view')
end
|
#view_name_eq(name) ⇒ Object
27
28
29
|
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 27
def view_name_eq(name)
master_table[:name].eq(name)
end
|