summaryrefslogtreecommitdiff
path: root/spec/mspec/lib/mspec/guards
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2022-06-26 14:50:13 +0200
committerBenoit Daloze <eregontp@gmail.com>2022-06-26 14:50:13 +0200
commitf616e816372d14e605879d2e43c7fbdda29ef837 (patch)
treea19720f6d0184d88e525a119acb6edd4ebf5d173 /spec/mspec/lib/mspec/guards
parentef79f0a9e5b70b177d2fc5c9505ffd865f03382b (diff)
Update to ruby/mspec@78b5d86
Diffstat (limited to 'spec/mspec/lib/mspec/guards')
-rw-r--r--spec/mspec/lib/mspec/guards/version.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/mspec/lib/mspec/guards/version.rb b/spec/mspec/lib/mspec/guards/version.rb
index 20f8c06d38..f5ea1988ae 100644
--- a/spec/mspec/lib/mspec/guards/version.rb
+++ b/spec/mspec/lib/mspec/guards/version.rb
@@ -33,6 +33,30 @@ class VersionGuard < SpecGuard
@version >= @requirement
end
end
+
+ @kernel_version = nil
+ def self.kernel_version
+ if @kernel_version
+ @kernel_version
+ else
+ if v = RUBY_PLATFORM[/darwin(\d+)/, 1] # build time version
+ uname = v
+ else
+ begin
+ require 'etc'
+ etc = true
+ rescue LoadError
+ etc = false
+ end
+ if etc and Etc.respond_to?(:uname)
+ uname = Etc.uname.fetch(:release)
+ else
+ uname = `uname -r`.chomp
+ end
+ end
+ @kernel_version = uname
+ end
+ end
end
def version_is(base_version, requirement, &block)
@@ -42,3 +66,7 @@ end
def ruby_version_is(requirement, &block)
VersionGuard.new(VersionGuard::FULL_RUBY_VERSION, requirement).run_if(:ruby_version_is, &block)
end
+
+def kernel_version_is(requirement, &block)
+ VersionGuard.new(VersionGuard.kernel_version, requirement).run_if(:kernel_version_is, &block)
+end