Class: ActiveRecord::ConnectionAdapters::PostgreSQLViewDefinition
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::PostgreSQLViewDefinition
- Includes:
- PostgreSQLExtensions::Utils
- Defined in:
- lib/active_record/postgresql_extensions/views.rb
Overview
Creates a PostgreSQL view definition. This class isn’t really meant to be used directly. Instead, see PostgreSQLAdapter#create_view for usage.
Instance Attribute Summary collapse
-
#base ⇒ Object
Returns the value of attribute base.
-
#name ⇒ Object
Returns the value of attribute name.
-
#options ⇒ Object
Returns the value of attribute options.
-
#query ⇒ Object
Returns the value of attribute query.
Instance Method Summary collapse
-
#initialize(base, name, query, options = {}) ⇒ PostgreSQLViewDefinition
constructor
:nodoc:.
-
#to_sql ⇒ Object
(also: #to_s)
:nodoc:.
Methods included from PostgreSQLExtensions::Utils
#hash_or_array_of_hashes, #options_from_hash_or_string, #strip_heredoc
Constructor Details
#initialize(base, name, query, options = {}) ⇒ PostgreSQLViewDefinition
:nodoc:
130 131 132 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 130 def initialize(base, name, query, = {}) #:nodoc: @base, @name, @query, @options = base, name, query, end |
Instance Attribute Details
#base ⇒ Object
Returns the value of attribute base.
128 129 130 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 128 def base @base end |
#name ⇒ Object
Returns the value of attribute name.
128 129 130 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 128 def name @name end |
#options ⇒ Object
Returns the value of attribute options.
128 129 130 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 128 def @options end |
#query ⇒ Object
Returns the value of attribute query.
128 129 130 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 128 def query @query end |
Instance Method Details
#to_sql ⇒ Object Also known as: to_s
:nodoc:
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/active_record/postgresql_extensions/views.rb', line 134 def to_sql #:nodoc: sql = 'CREATE ' sql << 'OR REPLACE ' if [:replace] sql << 'TEMPORARY ' if [:temporary] sql << 'RECURSIVE ' if [:recursive] sql << "VIEW #{base.quote_view_name(name)} " if [:columns] sql << '(' << Array.wrap([:columns]).collect do |c| base.quote_column_name(c) end.join(', ') << ') ' end if [:with_options] ActiveRecord::PostgreSQLExtensions::Features.check_feature(:view_set_options) sql << "WITH (#{([:with_options])}) " if .present? end sql << "AS #{query}" "#{sql};" end |