Class: ActiveRecord::ConnectionAdapters::PostgreSQLSequenceDefinition
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::PostgreSQLSequenceDefinition
- Defined in:
- lib/active_record/postgresql_extensions/sequences.rb
Overview
Class used to create or alter sequences. Generally you should be using PostgreSQLAdapter#create_sequence and its various sequence manipulation functions rather than using this class directly.
Instance Attribute Summary collapse
-
#action ⇒ Object
Returns the value of attribute action.
-
#base ⇒ Object
Returns the value of attribute base.
-
#name ⇒ Object
Returns the value of attribute name.
-
#options ⇒ Object
Returns the value of attribute options.
Instance Method Summary collapse
-
#initialize(base, action, name, options = {}) ⇒ PostgreSQLSequenceDefinition
constructor
:nodoc:.
-
#to_sql ⇒ Object
(also: #to_s)
:nodoc:.
Constructor Details
#initialize(base, action, name, options = {}) ⇒ PostgreSQLSequenceDefinition
:nodoc:
140 141 142 143 144 145 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 140 def initialize(base, action, name, = {}) #:nodoc: assert_valid_owned_by() assert_valid_action(action) @base, @action, @name, @options = base, action, name, end |
Instance Attribute Details
#action ⇒ Object
Returns the value of attribute action.
138 139 140 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 138 def action @action end |
#base ⇒ Object
Returns the value of attribute base.
138 139 140 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 138 def base @base end |
#name ⇒ Object
Returns the value of attribute name.
138 139 140 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 138 def name @name end |
#options ⇒ Object
Returns the value of attribute options.
138 139 140 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 138 def @options end |
Instance Method Details
#to_sql ⇒ Object Also known as: to_s
:nodoc:
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/active_record/postgresql_extensions/sequences.rb', line 147 def to_sql #:nodoc: sql = Array.new if action == :create sql << 'CREATE' sql << 'TEMPORARY' if [:temporary] else sql << 'ALTER' end sql << "SEQUENCE #{base.quote_sequence(name)}" sql << "INCREMENT BY #{[:increment].to_i}" if [:increment] if .has_key?(:min_value) sql << case [:min_value] when NilClass, FalseClass 'NO MINVALUE' else "MINVALUE #{[:min_value].to_i}" end end if .has_key?(:max_value) sql << case [:max_value] when NilClass, FalseClass 'NO MAXVALUE' else "MAXVALUE #{[:max_value].to_i}" end end sql << "START WITH #{[:start].to_i}" if [:start] sql << "CACHE #{[:cache].to_i}" if [:cache] if .has_key?(:cycle) sql << ([:cycle] ? 'CYCLE' : 'NO CYCLE') end if .has_key?(:owned_by) table_column = if [:owned_by].is_a?(Hash) [ [:owned_by][:table], [:owned_by][:column] ] elsif [:owned_by].is_a?(Array) [:owned_by] end sql << 'OWNED BY ' + if [:owned_by] == :none 'NONE' else "#{base.quote_table_name(table_column.first)}.#{base.quote_column_name(table_column.last)}" end end if action != :create && .has_key?(:restart_with) sql << "RESTART WITH #{[:restart_with].to_i}" end "#{sql.join(' ')};" end |