Sha256: 85445a0ae6086272f3b000a2f5e5694b5d54c6c0eaed1b6ba0fe02aff6580433

Contents?: true

Size: 566 Bytes

Versions: 6

Compression:

Stored size: 566 Bytes

Contents

module Apartment
  module Elevators
    #   Provides a rack based db switching solution based on request
    #
    class Generic

      def initialize(app, processor = nil)
        @app = app
        @processor = processor || method(:parse_database_name)
      end

      def call(env)
        request = ActionDispatch::Request.new(env)

        database = @processor.call(request)

        Apartment::Database.switch database if database

        @app.call(env)
      end

      def parse_database_name(request)
        raise "Override"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
apartment-0.18.0 lib/apartment/elevators/generic.rb
apartment-0.17.3 lib/apartment/elevators/generic.rb
apartment-0.17.2 lib/apartment/elevators/generic.rb
apartment-0.17.1 lib/apartment/elevators/generic.rb
apartment-0.17.0 lib/apartment/elevators/generic.rb
apartment-0.16.0 lib/apartment/elevators/generic.rb