samuel 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  .DS_Store
2
2
  .yardoc
3
+ Gemfile.lock
3
4
  /coverage
4
5
  /doc
5
6
  /pkg
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+ gemspec
3
+
4
+ platforms :jruby do
5
+ gem "jruby-openssl"
6
+ end
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2009–2010 Chris Kampmeier
1
+ Copyright 2009–2011 Chris Kampmeier
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -12,13 +12,12 @@ automatically loading the correct logger for the HTTP client you're using.
12
12
 
13
13
  == Usage
14
14
 
15
- When Rails is loaded, Samuel configures a few things automatically. So all you
16
- need to do is this:
15
+ If you're using Bundler, just add this to your Gemfile:
17
16
 
18
- # config/environment.rb
19
- config.gem "samuel"
17
+ gem "samuel", "~> 0.3"
20
18
 
21
- And Samuel will automatically use Rails's logger and an ActiveRecord-like format.
19
+ When Rails is loaded, Samuel configures itself to use Rails's logger and an
20
+ ActiveRecord-like format automatically, so you don't need to do anything else.
22
21
 
23
22
  For non-Rails projects, you'll have to manually configure logging, like this:
24
23
 
@@ -76,9 +75,9 @@ Right now, there are three configuration changes you can make in either style:
76
75
  these patterns as a substring by replacing the value with
77
76
  <tt>[FILTERED]</tt> in your logs. By default, no filtering is enabled.
78
77
 
79
- Samuel logs successful HTTP requests at the +INFO+ level; Failed requests log at
80
- the +WARN+ level. This isn't currently configurable, but it's on the list.
78
+ Samuel logs successful HTTP requests at the +INFO+ level; Failed requests log
79
+ at the +WARN+ level. This isn't currently configurable, but it's on the list.
81
80
 
82
81
  == License
83
82
 
84
- Copyright 2009–2010 Chris Kampmeier. See +LICENSE+ for details.
83
+ Copyright 2009–2011 Chris Kampmeier. See +LICENSE+ for details.
data/Rakefile CHANGED
@@ -1,6 +1,15 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
+ task :check_dependencies do
5
+ begin
6
+ require "bundler"
7
+ rescue LoadError
8
+ abort "Samuel uses Bundler to manage development dependencies. Install it with `gem install bundler`."
9
+ end
10
+ system("bundle check") || abort
11
+ end
12
+
4
13
  require 'rake/testtask'
5
14
  Rake::TestTask.new(:test) do |test|
6
15
  test.libs << 'lib' << 'test'
@@ -9,27 +18,7 @@ Rake::TestTask.new(:test) do |test|
9
18
  test.warning = true
10
19
  end
11
20
 
12
- begin
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gem|
15
- gem.name = "samuel"
16
- gem.version = "0.3.2"
17
- gem.summary = %Q{An automatic logger for HTTP requests in Ruby}
18
- gem.description = %Q{An automatic logger for HTTP requests in Ruby, supporting the Net::HTTP and HTTPClient client libraries.}
19
- gem.email = "chris@kampers.net"
20
- gem.homepage = "http://github.com/chrisk/samuel"
21
- gem.authors = ["Chris Kampmeier"]
22
- gem.rubyforge_project = "samuel"
23
- gem.add_development_dependency "shoulda"
24
- gem.add_development_dependency "mocha"
25
- gem.add_development_dependency "httpclient"
26
- gem.add_development_dependency "fakeweb"
27
- end
28
-
29
- task :test => :check_dependencies
30
- rescue LoadError
31
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
32
- end
21
+ task :default => [:check_dependencies, :test]
33
22
 
34
23
  begin
35
24
  require 'rcov/rcovtask'
@@ -42,18 +31,10 @@ begin
42
31
  test.warning = true
43
32
  end
44
33
  rescue LoadError
45
- task :rcov do
46
- abort "RCov is not available. In order to run rcov, you must: gem install rcov"
47
- end
48
34
  end
49
35
 
50
- task :default => :test
51
-
52
36
  begin
53
37
  require 'yard'
54
38
  YARD::Rake::YardocTask.new
55
39
  rescue LoadError
56
- task :yardoc do
57
- abort "YARD is not available. In order to run yardoc, you must: gem install yard"
58
- end
59
40
  end
@@ -13,7 +13,7 @@ require "samuel/log_entries/net_http"
13
13
  module Samuel
14
14
  extend self
15
15
 
16
- VERSION = "0.3.2"
16
+ VERSION = "0.3.3"
17
17
 
18
18
  attr_writer :logger, :config
19
19
 
@@ -21,8 +21,8 @@ module Samuel
21
21
  @logger = nil if !defined?(@logger)
22
22
  return @logger if !@logger.nil?
23
23
 
24
- if defined?(RAILS_DEFAULT_LOGGER)
25
- @logger = RAILS_DEFAULT_LOGGER
24
+ if defined?(Rails) && Rails.respond_to?(:logger)
25
+ @logger = Rails.logger
26
26
  else
27
27
  @logger = Logger.new(STDOUT)
28
28
  end
@@ -2,18 +2,22 @@ module Samuel
2
2
  module Diary
3
3
  extend self
4
4
 
5
- def record_request(http, request, time_requested)
5
+ def record_request(http, request, time_requested = current_time)
6
6
  @requests ||= []
7
7
  @requests.push({:request => request, :time_requested => time_requested})
8
8
  end
9
9
 
10
- def record_response(http, request, response, time_responded)
10
+ def record_response(http, request, response, time_responded = current_time)
11
11
  time_requested = @requests.detect { |r| r[:request] == request }[:time_requested]
12
12
  @requests.reject! { |r| r[:request] == request }
13
13
  log_request_and_response(http, request, response, time_requested, time_responded)
14
14
  end
15
15
 
16
- private
16
+ def current_time
17
+ Time.now
18
+ end
19
+
20
+ private
17
21
 
18
22
  def log_request_and_response(http, request, response, time_started, time_ended)
19
23
  log_entry_class = case http.class.to_s
@@ -24,6 +28,5 @@ module Samuel
24
28
  log_entry = log_entry_class.new(http, request, response, time_started, time_ended)
25
29
  log_entry.log!
26
30
  end
27
-
28
31
  end
29
32
  end
@@ -1,6 +1,5 @@
1
1
  module Samuel
2
2
  module DriverPatches
3
-
4
3
  module HTTPClient
5
4
  def self.included(klass)
6
5
  methods_to_wrap = %w(initialize do_get_block do_get_stream)
@@ -19,7 +18,7 @@ module Samuel
19
18
  begin
20
19
  do_get_block_without_samuel(req, proxy, conn, &block)
21
20
  rescue Exception => e
22
- Samuel::Diary.record_response(self, req, e, Time.now)
21
+ Samuel::Diary.record_response(self, req, e)
23
22
  raise
24
23
  end
25
24
  end
@@ -28,7 +27,7 @@ module Samuel
28
27
  begin
29
28
  do_get_stream_without_samuel(req, proxy, conn)
30
29
  rescue Exception => e
31
- Samuel::Diary.record_response(self, req, e, Time.now)
30
+ Samuel::Diary.record_response(self, req, e)
32
31
  raise
33
32
  end
34
33
  end
@@ -39,16 +38,14 @@ module Samuel
39
38
  end
40
39
 
41
40
  def filter_request(request)
42
- Samuel::Diary.record_request(@http_client_instance, request, Time.now)
41
+ Samuel::Diary.record_request(@http_client_instance, request)
43
42
  end
44
43
 
45
44
  def filter_response(request, response)
46
- Samuel::Diary.record_response(@http_client_instance, request, response, Time.now)
45
+ Samuel::Diary.record_response(@http_client_instance, request, response)
47
46
  nil # this returns command symbols like :retry, etc.
48
47
  end
49
48
  end
50
49
  end
51
-
52
50
  end
53
51
  end
54
-
@@ -1,6 +1,5 @@
1
1
  module Samuel
2
2
  module DriverPatches
3
-
4
3
  module NetHTTP
5
4
  def self.included(klass)
6
5
  methods_to_wrap = %w(request connect)
@@ -11,16 +10,17 @@ module Samuel
11
10
  end
12
11
 
13
12
  def request_with_samuel(request, body = nil, &block)
14
- Samuel::Diary.record_request(self, request, Time.now)
15
-
16
13
  response, exception_raised = nil, false
14
+ request_time = Samuel::Diary.current_time
15
+
17
16
  begin
18
17
  response = request_without_samuel(request, body, &block)
19
18
  rescue Exception => response
20
19
  exception_raised = true
21
20
  end
22
21
 
23
- Samuel::Diary.record_response(self, request, response, Time.now)
22
+ Samuel::Diary.record_request(self, request, request_time)
23
+ Samuel::Diary.record_response(self, request, response)
24
24
 
25
25
  raise response if exception_raised
26
26
  response
@@ -32,11 +32,10 @@ module Samuel
32
32
  fake_request = Object.new
33
33
  def fake_request.path; ""; end
34
34
  def fake_request.method; "CONNECT"; end
35
- Samuel::Diary.record_request(self, fake_request, Time.now)
36
- Samuel::Diary.record_response(self, fake_request, response, Time.now)
35
+ Samuel::Diary.record_request(self, fake_request)
36
+ Samuel::Diary.record_response(self, fake_request, response)
37
37
  raise
38
38
  end
39
39
  end
40
-
41
40
  end
42
41
  end
@@ -14,6 +14,5 @@ module Samuel
14
14
  apply_driver_patches
15
15
  end
16
16
  end
17
-
18
17
  end
19
- end
18
+ end
@@ -1,6 +1,5 @@
1
1
  module Samuel
2
2
  module LogEntries
3
-
4
3
  class Base
5
4
  def initialize(http, request, response, time_requested, time_responded)
6
5
  @http, @request, @response = http, request, response
@@ -11,8 +10,7 @@ module Samuel
11
10
  Samuel.logger.add(log_level, log_message)
12
11
  end
13
12
 
14
-
15
- protected
13
+ protected
16
14
 
17
15
  def log_message
18
16
  bold = "\e[1m"
@@ -73,6 +71,5 @@ module Samuel
73
71
  end
74
72
  end
75
73
  end
76
-
77
74
  end
78
- end
75
+ end
@@ -1,6 +1,5 @@
1
1
  module Samuel
2
2
  module LogEntries
3
-
4
3
  class HttpClient < Base
5
4
  extend Forwardable
6
5
 
@@ -23,6 +22,5 @@ module Samuel
23
22
  @response.is_a?(Exception) || @response.status.to_s =~ /^(4|5)/
24
23
  end
25
24
  end
26
-
27
25
  end
28
26
  end
@@ -1,6 +1,5 @@
1
1
  module Samuel
2
2
  module LogEntries
3
-
4
3
  class NetHttp < Base
5
4
  def host
6
5
  @http.address
@@ -40,6 +39,5 @@ module Samuel
40
39
  (error_classes & response_ancestors).any?
41
40
  end
42
41
  end
43
-
44
42
  end
45
43
  end
@@ -1,15 +1,12 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
5
2
 
6
3
  Gem::Specification.new do |s|
7
4
  s.name = %q{samuel}
8
- s.version = "0.3.2"
5
+ s.version = "0.3.3"
9
6
 
10
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
8
  s.authors = ["Chris Kampmeier"]
12
- s.date = %q{2010-01-12}
9
+ s.date = %q{2011-11-10}
13
10
  s.description = %q{An automatic logger for HTTP requests in Ruby, supporting the Net::HTTP and HTTPClient client libraries.}
14
11
  s.email = %q{chris@kampers.net}
15
12
  s.extra_rdoc_files = [
@@ -19,6 +16,7 @@ Gem::Specification.new do |s|
19
16
  s.files = [
20
17
  ".document",
21
18
  ".gitignore",
19
+ "Gemfile",
22
20
  "LICENSE",
23
21
  "README.rdoc",
24
22
  "Rakefile",
@@ -52,27 +50,13 @@ Gem::Specification.new do |s|
52
50
  "test/test_helper.rb",
53
51
  "test/thread_test.rb"
54
52
  ]
53
+ s.specification_version = 3
55
54
 
56
- if s.respond_to? :specification_version then
57
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
58
- s.specification_version = 3
59
-
60
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
61
- s.add_development_dependency(%q<shoulda>, [">= 0"])
62
- s.add_development_dependency(%q<mocha>, [">= 0"])
63
- s.add_development_dependency(%q<httpclient>, [">= 0"])
64
- s.add_development_dependency(%q<fakeweb>, [">= 0"])
65
- else
66
- s.add_dependency(%q<shoulda>, [">= 0"])
67
- s.add_dependency(%q<mocha>, [">= 0"])
68
- s.add_dependency(%q<httpclient>, [">= 0"])
69
- s.add_dependency(%q<fakeweb>, [">= 0"])
70
- end
71
- else
72
- s.add_dependency(%q<shoulda>, [">= 0"])
73
- s.add_dependency(%q<mocha>, [">= 0"])
74
- s.add_dependency(%q<httpclient>, [">= 0"])
75
- s.add_dependency(%q<fakeweb>, [">= 0"])
76
- end
55
+ s.add_development_dependency("shoulda", ["2.11.3"])
56
+ s.add_development_dependency("mocha", ["0.10.0"])
57
+ s.add_development_dependency("httpclient", ["2.2.3"])
58
+ s.add_development_dependency("fakeweb", ["~> 1.3"])
59
+ s.add_development_dependency("rcov", ["0.9.11"])
60
+ s.add_development_dependency("yard", ["0.7.3"])
61
+ s.add_development_dependency("rake", ["0.9.2.2"])
77
62
  end
78
-
@@ -10,7 +10,7 @@ class HttpClientTest < Test::Unit::TestCase
10
10
  context "to GET http://localhost:8000/, responding with a 200 in 53ms" do
11
11
  setup do
12
12
  now = Time.now
13
- Time.stubs(:now).returns(now, now + 0.053)
13
+ Samuel::Diary.stubs(:current_time).returns(now, now + 0.053)
14
14
  HTTPClient.get("http://localhost:8000/")
15
15
  end
16
16
 
@@ -63,6 +63,7 @@ class HttpClientTest < Test::Unit::TestCase
63
63
  client = HTTPClient.new
64
64
  connection = client.get_async("http://localhost:8001/")
65
65
  sleep 0.1 until connection.finished?
66
+ connection.pop
66
67
  rescue Errno::ECONNREFUSED => @exception
67
68
  end
68
69
  end
@@ -93,5 +94,4 @@ class HttpClientTest < Test::Unit::TestCase
93
94
  should_log_including "[500 Internal Server Error]"
94
95
  end
95
96
  end
96
-
97
97
  end
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class LoaderTest < Test::Unit::TestCase
4
-
5
4
  def capture_output(code = "")
6
5
  requires = @requires.map { |lib| "require '#{lib}';" }.join(' ')
7
6
  samuel_dir = "#{File.dirname(__FILE__)}/../lib"
@@ -59,5 +58,4 @@ class LoaderTest < Test::Unit::TestCase
59
58
  end
60
59
  end
61
60
  end
62
-
63
61
  end
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class RequestTest < Test::Unit::TestCase
4
-
5
4
  context "making an HTTP request" do
6
5
  setup { setup_test_logger
7
6
  FakeWeb.clean_registry
@@ -12,7 +11,7 @@ class RequestTest < Test::Unit::TestCase
12
11
  setup do
13
12
  FakeWeb.register_uri(:get, "http://example.com/test", :status => [200, "OK"])
14
13
  now = Time.now
15
- Time.stubs(:now).returns(now, now + 0.053)
14
+ Samuel::Diary.stubs(:current_time).returns(now, now + 0.053)
16
15
  open "http://example.com/test"
17
16
  end
18
17
 
@@ -221,5 +220,4 @@ class RequestTest < Test::Unit::TestCase
221
220
  should_log_including "HTTP request"
222
221
  end
223
222
  end
224
-
225
223
  end
@@ -1,13 +1,10 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class SamuelTest < Test::Unit::TestCase
4
-
5
4
  context "logger configuration" do
6
5
  setup do
7
6
  Samuel.logger = nil
8
- if Object.const_defined?(:RAILS_DEFAULT_LOGGER)
9
- Object.send(:remove_const, :RAILS_DEFAULT_LOGGER)
10
- end
7
+ Object.send(:remove_const, :Rails) if Object.const_defined?(:Rails)
11
8
  end
12
9
 
13
10
  teardown do
@@ -15,7 +12,7 @@ class SamuelTest < Test::Unit::TestCase
15
12
  end
16
13
 
17
14
  context "when Rails's logger is available" do
18
- setup { Object.const_set(:RAILS_DEFAULT_LOGGER, :mock_logger) }
15
+ setup { Object.const_set(:Rails, stub(:logger => :mock_logger)) }
19
16
 
20
17
  should "use the same logger" do
21
18
  assert_equal :mock_logger, Samuel.logger
@@ -30,7 +27,6 @@ class SamuelTest < Test::Unit::TestCase
30
27
  end
31
28
  end
32
29
 
33
-
34
30
  context ".reset_config" do
35
31
  should "reset the config to default vaules" do
36
32
  Samuel.config = {:foo => "bar"}
@@ -38,5 +34,4 @@ class SamuelTest < Test::Unit::TestCase
38
34
  assert_equal({:label => nil, :labels => {}, :filtered_params => []}, Samuel.config)
39
35
  end
40
36
  end
41
-
42
37
  end
@@ -1,11 +1,11 @@
1
1
  require 'rubygems'
2
+ require 'bundler'
3
+ Bundler.setup
2
4
 
3
5
  require 'shoulda'
4
6
  require 'mocha'
5
-
6
7
  require 'net/http'
7
8
  require 'httpclient'
8
-
9
9
  require 'open-uri'
10
10
  require 'fakeweb'
11
11
  require 'webrick'
@@ -45,6 +45,7 @@ class Test::Unit::TestCase
45
45
 
46
46
  def self.should_raise_exception(klass)
47
47
  should "raise an #{klass} exception" do
48
+ @exception = nil if !defined?(@exception)
48
49
  assert @exception.is_a?(klass)
49
50
  end
50
51
  end
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ThreadTest < Test::Unit::TestCase
4
-
5
4
  context "when logging multiple requests at once" do
6
5
  setup do
7
6
  @log = StringIO.new
@@ -28,5 +27,4 @@ class ThreadTest < Test::Unit::TestCase
28
27
  end
29
28
  end
30
29
  end
31
-
32
30
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: samuel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 3
10
+ version: 0.3.3
5
11
  platform: ruby
6
12
  authors:
7
13
  - Chris Kampmeier
@@ -9,49 +15,121 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-01-12 00:00:00 -08:00
18
+ date: 2011-11-10 00:00:00 -08:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: shoulda
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
- - - ">="
27
+ - - "="
22
28
  - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
29
+ hash: 37
30
+ segments:
31
+ - 2
32
+ - 11
33
+ - 3
34
+ version: 2.11.3
35
+ type: :development
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: mocha
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
- - - ">="
43
+ - - "="
32
44
  - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
45
+ hash: 55
46
+ segments:
47
+ - 0
48
+ - 10
49
+ - 0
50
+ version: 0.10.0
51
+ type: :development
52
+ version_requirements: *id002
35
53
  - !ruby/object:Gem::Dependency
36
54
  name: httpclient
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
40
58
  requirements:
41
- - - ">="
59
+ - - "="
42
60
  - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
61
+ hash: 1
62
+ segments:
63
+ - 2
64
+ - 2
65
+ - 3
66
+ version: 2.2.3
67
+ type: :development
68
+ version_requirements: *id003
45
69
  - !ruby/object:Gem::Dependency
46
70
  name: fakeweb
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 9
78
+ segments:
79
+ - 1
80
+ - 3
81
+ version: "1.3"
82
+ type: :development
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: rcov
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - "="
91
+ - !ruby/object:Gem::Version
92
+ hash: 45
93
+ segments:
94
+ - 0
95
+ - 9
96
+ - 11
97
+ version: 0.9.11
47
98
  type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: yard
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
50
105
  requirements:
51
- - - ">="
106
+ - - "="
52
107
  - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
108
+ hash: 5
109
+ segments:
110
+ - 0
111
+ - 7
112
+ - 3
113
+ version: 0.7.3
114
+ type: :development
115
+ version_requirements: *id006
116
+ - !ruby/object:Gem::Dependency
117
+ name: rake
118
+ prerelease: false
119
+ requirement: &id007 !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - "="
123
+ - !ruby/object:Gem::Version
124
+ hash: 11
125
+ segments:
126
+ - 0
127
+ - 9
128
+ - 2
129
+ - 2
130
+ version: 0.9.2.2
131
+ type: :development
132
+ version_requirements: *id007
55
133
  description: An automatic logger for HTTP requests in Ruby, supporting the Net::HTTP and HTTPClient client libraries.
56
134
  email: chris@kampers.net
57
135
  executables: []
@@ -64,6 +142,7 @@ extra_rdoc_files:
64
142
  files:
65
143
  - .document
66
144
  - .gitignore
145
+ - Gemfile
67
146
  - LICENSE
68
147
  - README.rdoc
69
148
  - Rakefile
@@ -92,21 +171,27 @@ rdoc_options:
92
171
  require_paths:
93
172
  - lib
94
173
  required_ruby_version: !ruby/object:Gem::Requirement
174
+ none: false
95
175
  requirements:
96
176
  - - ">="
97
177
  - !ruby/object:Gem::Version
178
+ hash: 3
179
+ segments:
180
+ - 0
98
181
  version: "0"
99
- version:
100
182
  required_rubygems_version: !ruby/object:Gem::Requirement
183
+ none: false
101
184
  requirements:
102
185
  - - ">="
103
186
  - !ruby/object:Gem::Version
187
+ hash: 3
188
+ segments:
189
+ - 0
104
190
  version: "0"
105
- version:
106
191
  requirements: []
107
192
 
108
193
  rubyforge_project: samuel
109
- rubygems_version: 1.3.5
194
+ rubygems_version: 1.6.2
110
195
  signing_key:
111
196
  specification_version: 3
112
197
  summary: An automatic logger for HTTP requests in Ruby