Class: SQL::TableCreator
- Inherits:
-
Object
- Object
- SQL::TableCreator
- Extended by:
- DataMapper::Property::Lookup
- Defined in:
- lib/dm-migrations/sql/table_creator.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#opts ⇒ Object
Returns the value of attribute opts.
-
#table_name ⇒ Object
Returns the value of attribute table_name.
Instance Method Summary collapse
- #column(name, type, opts = {}) ⇒ Object
-
#initialize(adapter, table_name, opts = {}, &block) ⇒ TableCreator
constructor
A new instance of TableCreator.
-
#now ⇒ Object
A helper for using the native NOW() SQL function in a default.
- #quoted_table_name ⇒ Object
- #to_sql ⇒ Object
-
#uuid ⇒ Object
A helper for using the native UUID() SQL function in a default.
Constructor Details
#initialize(adapter, table_name, opts = {}, &block) ⇒ TableCreator
Returns a new instance of TableCreator.
9 10 11 12 13 14 15 16 17 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 9 def initialize(adapter, table_name, opts = {}, &block) @adapter = adapter @table_name = table_name.to_s @opts = opts @columns = [] instance_eval(&block) end |
Instance Attribute Details
#opts ⇒ Object
Returns the value of attribute opts.
7 8 9 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 7 def opts @opts end |
#table_name ⇒ Object
Returns the value of attribute table_name.
7 8 9 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 7 def table_name @table_name end |
Instance Method Details
#column(name, type, opts = {}) ⇒ Object
23 24 25 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 23 def column(name, type, opts = {}) @columns << Column.new(@adapter, name, type, opts) end |
#now ⇒ Object
A helper for using the native NOW() SQL function in a default
32 33 34 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 32 def now SqlExpr.new('NOW()') end |
#quoted_table_name ⇒ Object
19 20 21 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 19 def quoted_table_name @adapter.send(:quote_name, table_name) end |
#to_sql ⇒ Object
27 28 29 |
# File 'lib/dm-migrations/sql/table_creator.rb', line 27 def to_sql "CREATE TABLE #{quoted_table_name} (#{@columns.map(&:to_sql).join(', ')})#{@adapter.(@opts)}" end |