aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/match_platform.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/match_platform.rb')
-rw-r--r--lib/bundler/match_platform.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/bundler/match_platform.rb b/lib/bundler/match_platform.rb
new file mode 100644
index 0000000000..050cd0efd3
--- /dev/null
+++ b/lib/bundler/match_platform.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+require "bundler/gem_helpers"
+
+module Bundler
+ module MatchPlatform
+ include GemHelpers
+
+ def match_platform(p)
+ MatchPlatform.platforms_match?(platform, p)
+ end
+
+ def self.platforms_match?(gemspec_platform, local_platform)
+ return true if gemspec_platform.nil?
+ return true if Gem::Platform::RUBY == gemspec_platform
+ return true if local_platform == gemspec_platform
+ gemspec_platform = Gem::Platform.new(gemspec_platform)
+ return true if GemHelpers.generic(gemspec_platform) === local_platform
+ return true if gemspec_platform === local_platform
+
+ false
+ end
+ end
+end