aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/dep_proxy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/dep_proxy.rb')
-rw-r--r--lib/bundler/dep_proxy.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/bundler/dep_proxy.rb b/lib/bundler/dep_proxy.rb
new file mode 100644
index 0000000000..998975bbaf
--- /dev/null
+++ b/lib/bundler/dep_proxy.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+module Bundler
+ class DepProxy
+ attr_reader :__platform, :dep
+
+ def initialize(dep, platform)
+ @dep = dep
+ @__platform = platform
+ end
+
+ def hash
+ @hash ||= dep.hash
+ end
+
+ def ==(other)
+ dep == other.dep && __platform == other.__platform
+ end
+
+ alias_method :eql?, :==
+
+ def type
+ @dep.type
+ end
+
+ def name
+ @dep.name
+ end
+
+ def requirement
+ @dep.requirement
+ end
+
+ def to_s
+ s = name.dup
+ s << " (#{requirement})" unless requirement == Gem::Requirement.default
+ s << " #{__platform}" unless __platform == Gem::Platform::RUBY
+ s
+ end
+
+ private
+
+ def method_missing(*args, &blk)
+ @dep.send(*args, &blk)
+ end
+ end
+end