Class: DeclareSchema::Model::TableOptionsDefinition
- Inherits:
-
Object
- Object
- DeclareSchema::Model::TableOptionsDefinition
- Includes:
- Comparable
- Defined in:
- lib/declare_schema/model/table_options_definition.rb
Constant Summary collapse
- TABLE_OPTIONS_TO_SQL_MAPPINGS =
{ charset: 'CHARACTER SET', collation: 'COLLATE' }.freeze
Instance Attribute Summary collapse
-
#table_name ⇒ Object
readonly
Returns the value of attribute table_name.
-
#table_options ⇒ Object
readonly
Returns the value of attribute table_options.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(rhs) ⇒ Object
- #alter_table_statement ⇒ Object
- #equivalent?(rhs) ⇒ Boolean
- #hash ⇒ Object
-
#initialize(table_name, **table_options) ⇒ TableOptionsDefinition
constructor
A new instance of TableOptionsDefinition.
- #settings ⇒ Object (also: #to_s)
- #to_key ⇒ Object
Constructor Details
#initialize(table_name, **table_options) ⇒ TableOptionsDefinition
Returns a new instance of TableOptionsDefinition.
51 52 53 54 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 51 def initialize(table_name, **) @table_name = table_name = end |
Instance Attribute Details
#table_name ⇒ Object (readonly)
Returns the value of attribute table_name.
49 50 51 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 49 def table_name @table_name end |
#table_options ⇒ Object (readonly)
Returns the value of attribute table_options.
49 50 51 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 49 def end |
Class Method Details
.for_model(model, old_table_name = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 14 def for_model(model, old_table_name = nil) table_name = old_table_name || model.table_name = if model.connection.class.name.match?(/mysql/i) (model.connection, table_name) else {} end new(table_name, **) end |
Instance Method Details
#<=>(rhs) ⇒ Object
68 69 70 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 68 def <=>(rhs) to_key <=> rhs.to_key end |
#alter_table_statement ⇒ Object
79 80 81 82 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 79 def alter_table_statement statement = "ALTER TABLE #{ActiveRecord::Base.connection.quote_table_name(table_name)} #{to_s}" "execute #{statement.inspect}" end |
#equivalent?(rhs) ⇒ Boolean
72 73 74 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 72 def equivalent?(rhs) settings == rhs.settings end |
#hash ⇒ Object
64 65 66 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 64 def hash to_key.hash end |
#settings ⇒ Object Also known as: to_s
60 61 62 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 60 def settings @settings ||= .map { |name, value| "#{TABLE_OPTIONS_TO_SQL_MAPPINGS[name]} #{value}" if value }.compact.join(" ") end |
#to_key ⇒ Object
56 57 58 |
# File 'lib/declare_schema/model/table_options_definition.rb', line 56 def to_key @key ||= [table_name, ].map(&:to_s) end |