Sha256: a5443934ad048b781319fb2aa4abad2de0d7b3de359552115c780f41d6a1e9d7
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
module Remarkable module Macros protected def method_missing(method_id, *args, &block) #:nodoc: if method_id.to_s =~ /^(should_not|should)_(.+)/ should_or_should_not_method_missing($1, $2, caller, *args, &block) elsif method_id.to_s =~ /^x(should_not|should)_(.+)/ disabled_method_missing($1, $2, *args, &block) else super(method_id, *args, &block) end end def should_or_should_not_method_missing(should_or_should_not, method, calltrace, *args, &block) #:nodoc: it { begin send(should_or_should_not, send(method, *args, &block)) rescue Exception => e e.set_backtrace(calltrace.to_a) raise e end } end def disabled_method_missing(should_or_should_not, method, *args, &block) #:nodoc: description = get_description_from_matcher(should_or_should_not, method, *args, &block) xexample(description) end # Try to get the description from the matcher. If an error is raised, we # deduct the description from the matcher name, but it will be shown in # english. # def get_description_from_matcher(should_or_should_not, method, *args, &block) #:nodoc: verb = should_or_should_not.to_s.gsub('_', ' ') desc = Remarkable::Matchers.send(method, *args, &block).spec(self).description verb = Remarkable.t("remarkable.core.#{should_or_should_not}", :default => verb) rescue desc = method.to_s.gsub('_', ' ') ensure verb << ' ' << desc end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
remarkable-3.0.1 | lib/remarkable/macros.rb |