Module: Sequel::Plugins::ClassTableInheritance::ClassMethods
- Defined in:
- lib/sequel/plugins/class_table_inheritance.rb
Instance Attribute Summary collapse
-
#cti_ignore_subclass_columns ⇒ Object
readonly
An array of columns that may be duplicated in sub-classes.
-
#cti_instance_dataset ⇒ Object
readonly
The dataset that table instance datasets are based on.
-
#cti_models ⇒ Object
readonly
An array of each model in the inheritance hierarchy that is backed by a new table.
-
#cti_qualify_tables ⇒ Object
readonly
A boolean indicating whether or not to automatically qualify tables backing subclasses with the same qualifier as their superclass, if the superclass is qualified.
-
#cti_table_columns ⇒ Object
readonly
An array of column symbols for the backing database table, giving the columns to update in each backing database table.
-
#cti_table_map ⇒ Object
readonly
A hash with class name symbol keys and table name symbol values.
-
#cti_tables ⇒ Object
readonly
An array of table symbols that back this model.
Instance Method Summary collapse
-
#cti_table_name ⇒ Object
The name of the most recently joined table.
-
#freeze ⇒ Object
Freeze CTI information when freezing model class.
-
#sti_class_from_key(key) ⇒ Object
The model class for the given key value.
-
#table_name ⇒ Object
The table name for the current model class’s main table.
Instance Attribute Details
permalink #cti_ignore_subclass_columns ⇒ Object (readonly)
An array of columns that may be duplicated in sub-classes. The primary key column is always allowed to be duplicated
259 260 261 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 259 def cti_ignore_subclass_columns @cti_ignore_subclass_columns end |
permalink #cti_instance_dataset ⇒ Object (readonly)
The dataset that table instance datasets are based on. Used for database modifications
245 246 247 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 245 def cti_instance_dataset @cti_instance_dataset end |
permalink #cti_models ⇒ Object (readonly)
An array of each model in the inheritance hierarchy that is backed by a new table.
237 238 239 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 237 def cti_models @cti_models end |
permalink #cti_qualify_tables ⇒ Object (readonly)
A boolean indicating whether or not to automatically qualify tables backing subclasses with the same qualifier as their superclass, if the superclass is qualified. Specified with the :qualify_tables option to the plugin and only applied to automatically determined table names (not to the :table_map option).
266 267 268 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 266 def cti_qualify_tables @cti_qualify_tables end |
permalink #cti_table_columns ⇒ Object (readonly)
An array of column symbols for the backing database table, giving the columns to update in each backing database table.
241 242 243 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 241 def cti_table_columns @cti_table_columns end |
permalink #cti_table_map ⇒ Object (readonly)
A hash with class name symbol keys and table name symbol values. Specified with the :table_map option to the plugin, and should be used if the implicit naming is incorrect.
255 256 257 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 255 def cti_table_map @cti_table_map end |
Instance Method Details
permalink #cti_table_name ⇒ Object
The name of the most recently joined table.
291 292 293 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 291 def cti_table_name cti_tables.last end |
permalink #freeze ⇒ Object
Freeze CTI information when freezing model class.
269 270 271 272 273 274 275 276 277 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 269 def freeze @cti_models.freeze @cti_tables.freeze @cti_table_columns.freeze @cti_table_map.freeze @cti_ignore_subclass_columns.freeze super end |
permalink #sti_class_from_key(key) ⇒ Object
The model class for the given key value.
296 297 298 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 296 def sti_class_from_key(key) sti_class(sti_model_map[key]) end |
permalink #table_name ⇒ Object
The table name for the current model class’s main table.
282 283 284 285 286 287 288 |
# File 'lib/sequel/plugins/class_table_inheritance.rb', line 282 def table_name if cti_tables && cti_tables.length > 1 @cti_alias else super end end |