diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-07-27 12:10:23 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-07-27 12:10:23 +0000 |
commit | c13aa27e52c3ba10a329cf5a70b25fbf2a72d556 (patch) | |
tree | e9d0dbdd7424682ec9d94f9d5ff9c95d3a0229dd /spec/mspec/lib | |
parent | aa30bfd53651ff87983e5706a0d06706e8265c3b (diff) |
Update to ruby/mspec@353605f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/mspec/lib')
-rw-r--r-- | spec/mspec/lib/mspec/guards/guard.rb | 28 | ||||
-rw-r--r-- | spec/mspec/lib/mspec/matchers/base.rb | 2 | ||||
-rw-r--r-- | spec/mspec/lib/mspec/utils/script.rb | 2 |
3 files changed, 28 insertions, 4 deletions
diff --git a/spec/mspec/lib/mspec/guards/guard.rb b/spec/mspec/lib/mspec/guards/guard.rb index 88adbba260..322a08145d 100644 --- a/spec/mspec/lib/mspec/guards/guard.rb +++ b/spec/mspec/lib/mspec/guards/guard.rb @@ -76,14 +76,22 @@ class SpecGuard def run_if(name, &block) @name = name - yield if yield?(false) + if block + yield if yield?(false) + else + yield?(false) + end ensure unregister end def run_unless(name, &block) @name = name - yield if yield?(true) + if block + yield if yield?(true) + else + yield?(true) + end ensure unregister end @@ -115,3 +123,19 @@ class SpecGuard raise "must be implemented by the subclass" end end + +# Combined guards + +def guard(condition, &block) + raise "condition must be a Proc" unless condition.is_a?(Proc) + raise LocalJumpError, "no block given" unless block + return yield if MSpec.mode? :unguarded or MSpec.mode? :verify or MSpec.mode? :report + yield if condition.call +end + +def guard_not(condition, &block) + raise "condition must be a Proc" unless condition.is_a?(Proc) + raise LocalJumpError, "no block given" unless block + return yield if MSpec.mode? :unguarded or MSpec.mode? :verify or MSpec.mode? :report + yield unless condition.call +end diff --git a/spec/mspec/lib/mspec/matchers/base.rb b/spec/mspec/lib/mspec/matchers/base.rb index 86b2fb4cec..fc2d36c84a 100644 --- a/spec/mspec/lib/mspec/matchers/base.rb +++ b/spec/mspec/lib/mspec/matchers/base.rb @@ -5,7 +5,7 @@ class MSpecEnv include MSpecMatchers end -# Expactations are sometimes used in a module body +# Expectations are sometimes used in a module body class Module include MSpecMatchers end diff --git a/spec/mspec/lib/mspec/utils/script.rb b/spec/mspec/lib/mspec/utils/script.rb index 910dcd22a7..146e3367af 100644 --- a/spec/mspec/lib/mspec/utils/script.rb +++ b/spec/mspec/lib/mspec/utils/script.rb @@ -234,7 +234,7 @@ class MSpecScript files patterns end - def cores(max = 1) + def cores(max) require 'etc' [Etc.nprocessors, max].min end |