Sha256: cbc6e852a6a5605ed6d2847eeb5c97d7e2625d2b254dfc12208c02a4d854d33e

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

if defined?(::DataMapper)
  module ::DataMapper::LogListener
    def log(message)
      ::DataMapper.logger.info("#{message.query}")
      super
    rescue Exception => e
      ::DataMapper.logger.error "[datamapper] #{e.class.name}: #{e.message}: #{message.inspect}}"
    end
  end
end

RSpec.configure do |config|
  config.before(:each) do
    require 'logger'
    logger = Logger.new(nil)

    if Ardm.rails4?
      require 'active_support/logger'
      logger = if ENV["VERBOSE"]
                 ActiveSupport::Logger.new(STDOUT)
               end
    end

    if defined?(::ActiveRecord::Base)
      ::ActiveRecord::Base.logger = logger
    elsif defined?(::DataMapper)
      require 'active_support/inflector'
      driver = DataObjects.const_get(ActiveSupport::Inflector.camelize('sqlite3'), false)

      DataObjects::Connection.send(:include, ::DataMapper::LogListener)
      # FIXME Setting DataMapper::Logger.new($stdout, :off) alone won't work because the #log
      # method is currently only available in DO and needs an explicit DO Logger instantiated.
      # We turn the logger :off because ActiveSupport::Notifications handles displaying log messages
      driver.logger = DataObjects::Logger.new($stdout, :off)
      ::DataMapper.logger = logger
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ardm-0.4.0.ar427 spec/support/logger.rb
ardm-0.4.0 spec/support/logger.rb
ardm-0.3.2 spec/support/logger.rb
ardm-0.3.1 spec/support/logger.rb
ardm-0.3.0 spec/support/logger.rb