class Bundler::Plugin::DSL

Dsl to parse the Gemfile looking for plugins to install

def initialize

def initialize
  super
  @sources = Plugin::SourceList.new
  @inferred_plugins = [] # The source plugins inferred from :type
end

def method_missing(name, *args)

def method_missing(name, *args)
  raise PluginGemfileError, "Undefined local variable or method `#{name}' for Gemfile" unless Bundler::Dsl.method_defined? name
end

def plugin(name, *args)

def plugin(name, *args)
  _gem(name, *args)
end

def source(source, *args, &blk)

def source(source, *args, &blk)
  options = args.last.is_a?(Hash) ? args.pop.dup : {}
  options = normalize_hash(options)
  return super unless options.key?("type")
  plugin_name = "bundler-source-#{options["type"]}"
  return if @dependencies.any? {|d| d.name == plugin_name }
  plugin(plugin_name)
  @inferred_plugins << plugin_name
end