module Gracefully::Degradable::ClassMethods
Public Instance Methods
gracefully_degrade(method, options)
click to toggle source
# File lib/gracefully/degradable.rb, line 14 def gracefully_degrade(method, options) @__gracefully_degradable_methods__ ||= {} fallback_method, fallback_options = options[:fallback].first fallback_options ||= {} original_method = "#{method}_without_graceful_degradation" @__gracefully_degradable_methods__[method] = Gracefully.degradable_command(options) { |instance, *args, &block| instance.__send__(original_method, *args, &block) }.fallback_to(fallback_options) { |instance, *args, &block| instance.__send__(fallback_method, *args, &block) } alias_method original_method, method define_method method do |*args, &block| __call_gracefully_degradable_method__(method, *args, &block) end end