diff options
author | Benoit Daloze <eregontp@gmail.com> | 2022-06-26 14:50:13 +0200 |
---|---|---|
committer | Benoit Daloze <eregontp@gmail.com> | 2022-06-26 14:50:13 +0200 |
commit | f616e816372d14e605879d2e43c7fbdda29ef837 (patch) | |
tree | a19720f6d0184d88e525a119acb6edd4ebf5d173 /spec/mspec/lib/mspec/guards | |
parent | ef79f0a9e5b70b177d2fc5c9505ffd865f03382b (diff) |
Update to ruby/mspec@78b5d86
Diffstat (limited to 'spec/mspec/lib/mspec/guards')
-rw-r--r-- | spec/mspec/lib/mspec/guards/version.rb | 28 |
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 |