Skip to content

Instantly share code, notes, and snippets.

@peteryates
Forked from efexen/gist:62db8c7b6c4756f193fe
Last active August 29, 2015 14:18
Show Gist options
  • Save peteryates/bcc2856a1b4a7c395d76 to your computer and use it in GitHub Desktop.
Save peteryates/bcc2856a1b4a7c395d76 to your computer and use it in GitHub Desktop.
# Original: https://gist.github.com/otaviomedeiros/1950961
# Updated for new RSpec syntax
RSpec::Matchers.define :alias_from do |alias_method|
match do |subject|
begin
subject.send(alias_method)
rescue NoMethodError
raise "expected alias_method from #{alias_method} to #{@original_method} but #{alias_method} is not defined"
end
subject.method(alias_method).eql?(subject.method(@original_method))
end
description do
"delegate :#{@original_method} to :#{alias_method}"
end
failure_message do |text|
"expected alias_method from #{alias_method} to #{@original_method}"
end
failure_message_when_negated do |text|
"do not expected alias_method from #{alias_method} to #{@original_method}"
end
chain(:to) { |original_method| @original_method = original_method }
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment