Sha256: 834b5b25445fcc90770b9b4921c2f83883c459f713ee4a43460d5860f92c0501
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
module AktionTestRails module Support module Rails module ModelBuilder def self.included(example_group) example_group.class_eval do before do @created_tables ||= [] end after do drop_created_tables end end end def create_table(table_name, options = {}, &block) connection = ActiveRecord::Base.connection begin connection.execute("DROP TABLE IF EXISTS #{table_name}") connection.create_table(table_name, options, &block) @created_tables << table_name connection rescue Exception => e connection.execute("DROP TABLE IF EXISTS #{table_name}") raise e end end def define_model_class(class_name, &block) define_class(class_name, ActiveRecord::Base, &block) end def define_model(name, columns = {}, &block) class_name = name.to_s.pluralize.classify table_name = class_name.tableize create_table(table_name) do |table| columns.each do |name,type| table.column name, type end end define_model_class(class_name, &block) end def drop_created_tables connection = ActiveRecord::Base.connection @created_tables.each do |table_name| connection.execute("DROP TABLE IF EXISTS #{table_name}") end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
aktion_test_rails-0.3.0 | lib/aktion_test_rails/support/rails/model_builder.rb |
aktion_test_rails-0.2.0 | lib/aktion_test_rails/support/rails/model_builder.rb |