aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activeresource/lib')
-rw-r--r--activeresource/lib/active_resource/connection.rb14
-rw-r--r--activeresource/lib/active_resource/railtie.rb11
-rw-r--r--activeresource/lib/active_resource/railties/subscriber.rb15
3 files changed, 30 insertions, 10 deletions
diff --git a/activeresource/lib/active_resource/connection.rb b/activeresource/lib/active_resource/connection.rb
index 193be89a82..2f0ccd7dae 100644
--- a/activeresource/lib/active_resource/connection.rb
+++ b/activeresource/lib/active_resource/connection.rb
@@ -103,14 +103,14 @@ module ActiveResource
with_auth { request(:head, path, build_request_headers(headers, :head, self.site.merge(path))) }
end
-
private
# Makes a request to the remote service.
def request(method, path, *arguments)
- logger.info "#{method.to_s.upcase} #{site.scheme}://#{site.host}:#{site.port}#{path}" if logger
- result = nil
- ms = Benchmark.ms { result = http.send(method, path, *arguments) }
- logger.info "--> %d %s (%d %.0fms)" % [result.code, result.message, result.body ? result.body.length : 0, ms] if logger
+ result = ActiveSupport::Notifications.instrument("active_resource.request") do |payload|
+ payload[:method] = method
+ payload[:request_uri] = "#{site.scheme}://#{site.host}:#{site.port}#{path}"
+ payload[:result] = http.send(method, path, *arguments)
+ end
handle_response(result)
rescue Timeout::Error => e
raise TimeoutError.new(e.message)
@@ -274,10 +274,6 @@ module ActiveResource
{HTTP_FORMAT_HEADER_NAMES[http_method] => format.mime_type}
end
- def logger #:nodoc:
- Base.logger
- end
-
def legitimize_auth_type(auth_type)
return :basic if auth_type.nil?
auth_type = auth_type.to_sym
diff --git a/activeresource/lib/active_resource/railtie.rb b/activeresource/lib/active_resource/railtie.rb
index 4f264c82b8..1b9307d472 100644
--- a/activeresource/lib/active_resource/railtie.rb
+++ b/activeresource/lib/active_resource/railtie.rb
@@ -1,2 +1,11 @@
require "active_resource"
-require "rails" \ No newline at end of file
+require "rails"
+
+module ActiveResource
+ class Railtie < Rails::Railtie
+ plugin_name :active_resource
+
+ require "active_resource/railties/subscriber"
+ subscriber ActiveResource::Railties::Subscriber.new
+ end
+end \ No newline at end of file
diff --git a/activeresource/lib/active_resource/railties/subscriber.rb b/activeresource/lib/active_resource/railties/subscriber.rb
new file mode 100644
index 0000000000..fb98061b71
--- /dev/null
+++ b/activeresource/lib/active_resource/railties/subscriber.rb
@@ -0,0 +1,15 @@
+module ActiveResource
+ module Railties
+ class Subscriber < Rails::Subscriber
+ def request(event)
+ result = event.payload[:result]
+ info "#{event.payload[:method].to_s.upcase} #{event.payload[:request_uri]}"
+ info "--> %d %s %d (%.1fms)" % [result.code, result.message, result.body.to_s.length, event.duration]
+ end
+
+ def logger
+ ActiveResource::Base.logger
+ end
+ end
+ end
+end \ No newline at end of file