Class: StaticData::Base
- Inherits:
-
Object
- Object
- StaticData::Base
- Defined in:
- lib/static-data/base.rb
Class Method Summary collapse
-
.columns ⇒ Object
Override this method to control which attributes make up the data returned by the ‘rows` method.
-
.install ⇒ Object
Creates new records for all of the data returned by the ‘rows` method of the StaticData subclass.
-
.model_class ⇒ Object
Returns the model class for this StaticData subclass (which is the class name without the “Static” prefix by default, but can be overridden via set_model_class).
-
.reset ⇒ Object
Deletes all model_class records from the database.
-
.rows ⇒ Object
Override this method to return the record data that should always exist in the model class’s database table.
-
.set_model_class(other_model_class) ⇒ Object
Overrides the default model class for this StaticData class.
Class Method Details
.columns ⇒ Object
Override this method to control which attributes make up the data returned by the ‘rows` method.
25 26 27 |
# File 'lib/static-data/base.rb', line 25 def self.columns [] end |
.install ⇒ Object
Creates new records for all of the data returned by the ‘rows` method of the StaticData subclass.
38 39 40 41 42 43 44 |
# File 'lib/static-data/base.rb', line 38 def self.install cols = self.columns row_class = self.model_class self.rows.each do |row| row_class.create!(Hash[cols.zip(row)], :without_protection => true) end end |
.model_class ⇒ Object
Returns the model class for this StaticData subclass (which is the class name without the “Static” prefix by default, but can be overridden via set_model_class).
13 14 15 16 |
# File 'lib/static-data/base.rb', line 13 def self.model_class model_class_name = @model_class_name || self.name.sub(/^Static/, '') Object.const_get(model_class_name) end |
.reset ⇒ Object
Deletes all model_class records from the database.
19 20 21 |
# File 'lib/static-data/base.rb', line 19 def self.reset self.model_class.delete_all end |
.rows ⇒ Object
Override this method to return the record data that should always exist in the model class’s database table. The columns must appear in the the order specified by the ‘columns` method.
32 33 34 |
# File 'lib/static-data/base.rb', line 32 def self.rows [] end |
.set_model_class(other_model_class) ⇒ Object
Overrides the default model class for this StaticData class. Use this if your StaticData class name is not “Static + ModelClass”. If you stick to the standard naming convention, you don’t need this method.
6 7 8 |
# File 'lib/static-data/base.rb', line 6 def self.set_model_class(other_model_class) @model_class_name = other_model_class end |