Method: RSpec::Matchers::DSL#alias_matcher
- Defined in:
- lib/rspec/matchers/dsl.rb
#alias_matcher(new_name, old_name, options = {}) {|String| ... } ⇒ Object
Defines a matcher alias. The returned matcher's description will be overridden
to reflect the phrasing of the new name, which will be used in failure messages
when passed as an argument to another matcher in a composed matcher expression.
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rspec/matchers/dsl.rb', line 32 def alias_matcher(new_name, old_name, ={}, &description_override) description_override ||= lambda do |old_desc| old_desc.gsub(EnglishPhrasing.split_words(old_name), EnglishPhrasing.split_words(new_name)) end klass = .fetch(:klass) { AliasedMatcher } define_method(new_name) do |*args, &block| matcher = __send__(old_name, *args, &block) matcher.matcher_name = new_name if matcher.respond_to?(:matcher_name=) klass.new(matcher, description_override) end ruby2_keywords new_name if respond_to?(:ruby2_keywords, true) end |