Sha256: dbdbdd281319ac6aa525706a93da7b16362c601d4c40e8f4fa1f51a40250099a

Contents?: true

Size: 1.09 KB

Versions: 21

Compression:

Stored size: 1.09 KB

Contents

require "logger"
require "net/http"
require "net/https"
require "benchmark"

require "samuel/net_http"
require "samuel/request"


module Samuel
  extend self

  attr_writer :config, :logger

  def logger
    @logger = nil if !defined?(@logger)
    return @logger if !@logger.nil?

    if defined?(RAILS_DEFAULT_LOGGER)
      @logger = RAILS_DEFAULT_LOGGER
    else
      @logger = Logger.new(STDOUT)
    end
  end

  def config
    Thread.current[:__samuel_config] ? Thread.current[:__samuel_config] : @config
  end

  def log_request(http, request, &block)
    request = Request.new(http, request, block)
    request.perform_and_log!
    request.response
  end

  def with_config(options = {})
    original_config = config.dup
    nested = !Thread.current[:__samuel_config].nil?

    Thread.current[:__samuel_config] = original_config.merge(options)
    yield
    Thread.current[:__samuel_config] = nested ? original_config : nil
  end

  def reset_config
    Thread.current[:__samuel_config] = nil
    @config = {:label => nil, :labels => {"" => "HTTP"}, :filtered_params => []}
  end

end

Samuel.reset_config

Version data entries

21 entries across 21 versions & 8 rubygems

Version Path
chrisk-samuel-0.2.1 lib/samuel.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/fakeweb-1.3.0/test/vendor/samuel-0.2.1/lib/samuel.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/fakeweb-1.3.0/test/vendor/samuel-0.2.1/lib/samuel.rb
putio-0.0.1.pre2 development/ruby/1.8/gems/fakeweb-1.3.0/test/vendor/samuel-0.2.1/lib/samuel.rb
putio-0.0.1.pre development/ruby/1.8/gems/fakeweb-1.3.0/test/vendor/samuel-0.2.1/lib/samuel.rb
cotweet-fakeweb-1.3.0 test/vendor/samuel-0.2.1/lib/samuel.rb
fakeweb-1.3.0 test/vendor/samuel-0.2.1/lib/samuel.rb
corntrace-fakeweb-1.2.9 test/vendor/samuel-0.2.1/lib/samuel.rb
webmock-1.0.0 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.9.1 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.9.0 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.8.2 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.8.1 spec/vendor/samuel-0.2.1/lib/samuel.rb
fakeweb-1.2.8 test/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.8.0 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.7.3 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.7.2 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.7.1 spec/vendor/samuel-0.2.1/lib/samuel.rb
webmock-0.7.0 spec/vendor/samuel-0.2.1/lib/samuel.rb
fakeweb-1.2.7 test/vendor/samuel-0.2.1/lib/samuel.rb