module Cucumber::Rails::Database

Constants

CUSTOM_STRATEGY_INTERFACE

Attributes

autorun_database_cleaner[RW]

Public Class Methods

after() click to toggle source
# File lib/cucumber/rails/database.rb, line 34
def after
  @strategy.after
end
before_js() click to toggle source
# File lib/cucumber/rails/database.rb, line 26
def before_js
  @strategy.before_js
end
before_non_js() click to toggle source
# File lib/cucumber/rails/database.rb, line 30
def before_non_js
  @strategy.before_non_js
end
javascript_strategy=(args) click to toggle source
# File lib/cucumber/rails/database.rb, line 11
def javascript_strategy=(args)
  strategy, *strategy_opts = args
  strategy_type =
    case strategy
    when Symbol
      map[strategy] || raise(InvalidStrategy, "The strategy '#{strategy}' is not understood. Please use one of #{map.keys.join(',')}")
    when Class
      strategy
    end

  @strategy =  strategy_type.new(*strategy_opts)

  validate_interface!
end

Private Class Methods

map() click to toggle source
# File lib/cucumber/rails/database.rb, line 40
def map
  {
    truncation: TruncationStrategy,
    shared_connection: SharedConnectionStrategy,
    transaction: SharedConnectionStrategy,
    deletion: DeletionStrategy
  }
end
validate_interface!() click to toggle source
# File lib/cucumber/rails/database.rb, line 49
def validate_interface!
  unless CUSTOM_STRATEGY_INTERFACE.all? { |m| @strategy.respond_to?(m) }
    raise(ArgumentError, "Strategy must respond to all of: #{CUSTOM_STRATEGY_INTERFACE.map{ |method| "##{method}" } * '  ' } !")
  end
end