aboutsummaryrefslogtreecommitdiffstats
path: root/spec/mspec/lib
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-07-27 12:10:23 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-07-27 12:10:23 +0000
commit7b440f6c5bdded8d836288c6b2496cdf1147749c (patch)
treee9d0dbdd7424682ec9d94f9d5ff9c95d3a0229dd /spec/mspec/lib
parent269cf72667417d8ad23249132aed984048269e26 (diff)
downloadruby-7b440f6c5bdded8d836288c6b2496cdf1147749c.tar.gz
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.rb28
-rw-r--r--spec/mspec/lib/mspec/matchers/base.rb2
-rw-r--r--spec/mspec/lib/mspec/utils/script.rb2
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