class SequelTest::BaseTestCase

Public Instance Methods

default_test() click to toggle source
# File test/unit/integrations/sequel_test.rb, line 11
def default_test
end

Protected Instance Methods

new_model(create_table = :foo, &block) click to toggle source

Creates a new Sequel model (and the associated table)

# File test/unit/integrations/sequel_test.rb, line 16
def new_model(create_table = :foo, &block)
  table_name = create_table || :foo
  table_identifier = ::Sequel::SQL::Identifier.new(table_name)
  
  if !defined?(Sequel::VERSION) || Gem::Version.new(::Sequel::VERSION) <= Gem::Version.new('3.26.0')
    class << table_identifier
      alias_method :original_to_s, :to_s
      def to_s(*args); args.empty? ? inspect : original_to_s(*args); end
    end
  end
  
  DB.create_table!(table_identifier) do
    primary_key :id
    column :state, :string
  end if create_table
  model = Class.new(Sequel::Model(DB[table_identifier])) do
    self.raise_on_save_failure = false
    (class << self; self; end).class_eval do
      define_method(:name) { "SequelTest::#{table_name.to_s.capitalize}" }
    end
  end
  model.class_eval(&block) if block_given?
  model
end