lib/with_model/table.rb in with_model-2.1.0 vs lib/with_model/table.rb in with_model-2.1.1
- old
+ new
@@ -1,23 +1,31 @@
# frozen_string_literal: true
require 'active_record'
module WithModel
+ # In general, direct use of this class should be avoided. Instead use
+ # either the {WithModel high-level API} or {WithModel::Model::DSL low-level API}.
class Table
+ # @param name The name of the table to create.
+ # @param options Passed to ActiveRecord `create_table`.
+ # @param block Passed to ActiveRecord `create_table`.
+ # @see https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table
def initialize(name, options = {}, &block)
@name = name.freeze
@options = options.freeze
@block = block
end
+ # Creates the table with the initialized options. Drops the table if
+ # it already exists.
def create
connection.drop_table(@name) if exists?
connection.create_table(@name, @options, &@block)
end
def destroy
- ActiveRecord::Base.connection.drop_table(@name)
+ connection.drop_table(@name)
end
private
def exists?