diff --git a/lib/delayed/performable_method.rb b/lib/delayed/performable_method.rb index 3f2426288..e9e3bdae1 100644 --- a/lib/delayed/performable_method.rb +++ b/lib/delayed/performable_method.rb @@ -19,7 +19,11 @@ def initialize(object, method_name, args) end def display_name - "#{object.class}##{method_name}" + if object.is_a?(Class) + "#{object}.#{method_name}" + else + "#{object.class}##{method_name}" + end end def perform diff --git a/spec/performable_method_spec.rb b/spec/performable_method_spec.rb index 1f1454df5..c9d1e9f61 100644 --- a/spec/performable_method_spec.rb +++ b/spec/performable_method_spec.rb @@ -37,6 +37,16 @@ def private_method expect { Delayed::PerformableMethod.new(clazz.new, :private_method, []) }.not_to raise_error end + describe 'display_name' do + it 'returns class_name#method_name for instance methods' do + expect(Delayed::PerformableMethod.new('foo', :count, ['o']).display_name).to eq('String#count') + end + + it 'returns class_name.method_name for class methods' do + expect(Delayed::PerformableMethod.new(Class, :inspect, []).display_name).to eq('Class.inspect') + end + end + describe 'hooks' do %w[before after success].each do |hook| it "delegates #{hook} hook to object" do