From 5c8d9c82b287ef2f6d2fd36b45d6cd11cad12c88 Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Sun, 6 Jun 2010 02:03:53 -0700 Subject: Set things up to start working on the platform DSL --- lib/bundler/dependency.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/bundler/dependency.rb') diff --git a/lib/bundler/dependency.rb b/lib/bundler/dependency.rb index dacf991e04..1d0a912d96 100644 --- a/lib/bundler/dependency.rb +++ b/lib/bundler/dependency.rb @@ -7,19 +7,39 @@ module Bundler attr_reader :groups attr_reader :platforms + PLATFORM_MAP = { + :ruby => Gem::Platform::RUBY, + :ruby_18 => Gem::Platform::RUBY, + :ruby_19 => Gem::Platform::RUBY, + :jruby => Gem::Platform::JAVA, + :mswin => Gem::Platform::MSWIN + } + def initialize(name, version, options = {}, &blk) super(name, version) @autorequire = nil @groups = Array(options["group"] || :default).map { |g| g.to_sym } @source = options["source"] - @platforms = [] + @platforms = Array(options["platforms"]) if options.key?('require') @autorequire = Array(options['require'] || []) end end + def gem_platforms(valid_platforms) + return valid_platforms if @platforms.empty? + + platforms = [] + @platforms.each do |p| + platform = PLATFORM_MAP[p] + next unless valid_platforms.include?(platform) + platforms |= [platform] + end + platforms + end + def to_lock out = " #{name}" -- cgit v1.2.1