lib/watirspec/guards.rb in watir-6.13.0 vs lib/watirspec/guards.rb in watir-6.14.0

- old
+ new

@@ -1,8 +1,7 @@ module WatirSpec module Guards - class << self def guards @guards ||= Hash.new { |hash, key| hash[key] = [] } end @@ -10,17 +9,17 @@ guards[impls] << {name: guard_name, data: data} end def report gs = WatirSpec.implementation.matching_guards_in(guards) - str= "WatirSpec guards for this implementation: \n" + str = "WatirSpec guards for this implementation: \n" if gs.empty? "\tnone." else gs.each do |guard| - guard[:data][:file] = guard[:data][:file][/\/spec\/(.*):/, 1] + guard[:data][:file] = guard[:data][:file][%r{\/spec\/(.*):}, 1] guard_name = "#{guard[:name]}:".ljust(15) str << " \t#{guard_name} #{guard[:data].inspect}\n" end Watir.logger.warn str, ids: [:guard_names] end @@ -28,29 +27,33 @@ end # class << self private def deviates_on(*impls) - Guards.record :deviates, impls, file: caller.first + Guards.record :deviates, impls, file: caller(1..1).first return yield if WatirSpec.unguarded? + yield if WatirSpec.implementation.matches_guard?(impls) end def not_compliant_on(*impls) - Guards.record :not_compliant, impls, file: caller.first + Guards.record :not_compliant, impls, file: caller(1..1).first return yield if WatirSpec.unguarded? + yield unless WatirSpec.implementation.matches_guard?(impls) end def compliant_on(*impls) - Guards.record :compliant, impls, file: caller.first + Guards.record :compliant, impls, file: caller(1..1).first return yield if WatirSpec.unguarded? + yield if WatirSpec.implementation.matches_guard?(impls) end def bug(key, *impls) - Guards.record :bug, impls, file: caller.first, key: key + Guards.record :bug, impls, file: caller(1..1).first, key: key return yield if WatirSpec.unguarded? + yield if impls.any? && !WatirSpec.implementation.matches_guard?(impls) end end end