Sha256: 1dc0e7b5c37cdfccc6868b9a96363d46af14ff3ebbb2f2d550665b11a1bf9a39
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
module Remarkable module Macros protected def method_missing(method_id, *args, &block) 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) 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) 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) 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.0 | lib/remarkable/macros.rb |