Sha256: e977eedfb03463911cfb8555fb261ba607a2cce4ca279cb8e5fef40162b76023

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module Backend
  def self.from_name(name)
    puts "Backend: #{name}"
    case name
    when 'mongoid'
      MongoidBackend.new
    else
      ActiveRecordBackend.new
    end
  end

  class ActiveRecordBackend
    def load!
      require 'devise/orm/active_record'
      require 'rails_app_active_record/config/environment'
    end

    def setup_database_cleaner
      # Not necessary
    end

    def migrate!
      # Do initial migration
      path = File.expand_path("../rails_app_active_record/db/migrate/", File.dirname(__FILE__))

      if Gem::Requirement.new(">= 5.2.0.rc1") =~ Rails.gem_version
        ActiveRecord::MigrationContext.new(path).migrate
      else
        ActiveRecord::Migrator.migrate(path)
      end
    end
  end

  class MongoidBackend
    def load!
      require 'mongoid'
      require 'devise/orm/mongoid'
      require 'rails_app_mongoid/config/environment'
      require 'database_cleaner'
    end

    def setup_database_cleaner
      DatabaseCleaner[:mongoid].strategy = :truncation
    end

    def migrate!
      # Not necessary
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tiddle-1.3.0 spec/support/backend.rb
tiddle-1.2.0 spec/support/backend.rb