Sha256: c2c8cbe13ff4fcbbed615dd8418771fd3850e66786679d867616f759381fafb8
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require "activeresource-response/version" module ActiveresourceResponse module Connection def self.included(base) base.class_eval do alias_method :origin_handle_response, :handle_response def handle_response(response) Thread.current['ActiveResource::Base.http_response'] = response origin_handle_response(response) end def http_response Thread.current['ActiveResource::Base.http_response'] end end end end module AddResponseMethod def self.included(base) base.extend ClassMethods end module ClassMethods def add_response_method(method_name = 'http_response') class_eval <<-EOS class << self alias_method :origin_find, :find def find(*arguments) result = origin_find(*arguments) result.class_eval("attr_reader :#{method_name}") result.instance_variable_set(:"@#{method_name}", connection.http_response) result end end EOS end end end end ActiveResource::Connection.send :include, ActiveresourceResponse::Connection ActiveResource::Base.send :include, ActiveresourceResponse::AddResponseMethod
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activeresource-response-0.0.4 | lib/activeresource-response.rb |