Class | Delayed::PerformableMethod |
In: |
lib/delayed/performable_method.rb
lib/delayed/psych_ext.rb |
Parent: | Object |
args | [RW] | |
method_name | [RW] | |
object | [RW] |
# File lib/delayed/performable_method.rb, line 9 9: def initialize(object, method_name, args) 10: raise NoMethodError, "undefined method `#{method_name}' for #{object.inspect}" unless object.respond_to?(method_name, true) 11: 12: if object.respond_to?(:new_record?) && object.new_record? 13: raise(ArgumentError, 'Jobs cannot be created for records before they\'ve been persisted') 14: end 15: 16: self.object = object 17: self.args = args 18: self.method_name = method_name.to_sym 19: end
# File lib/delayed/performable_method.rb, line 21 21: def display_name 22: "#{object.class}##{method_name}" 23: end
serialize to YAML
# File lib/delayed/psych_ext.rb, line 13 13: def encode_with(coder) 14: coder.map = { 15: "object" => object, 16: "method_name" => method_name, 17: "args" => args 18: } 19: end
# File lib/delayed/performable_method.rb, line 29 29: def method_missing(symbol, *args) 30: object.send(symbol, *args) 31: end
# File lib/delayed/performable_method.rb, line 25 25: def perform 26: object.send(method_name, *args) if object 27: end