Class: ActiveRecord::View::Introspection::SQLite3

Inherits:
Abstract
  • Object
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_tableArel::Table (readonly)

Returns:

  • (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_definitionObject



23
24
25
# File 'lib/activerecord/view/introspection/sqlite3.rb', line 23

def sql_definition
  master_table[:sql]
end

#type_is_viewArel::Nodes::Equality

Returns:

  • (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