class Bundler::Plugin::DSL
Dsl
to parse the Gemfile looking for plugins to install
Attributes
inferred_plugins[R]
This lists the plugins that was added automatically and not specified by the user.
When we encounter :type attribute with a source block, we add a plugin by name bundler-source-<type> to list of plugins to be installed.
These plugins are optional and are not installed when there is conflict with any other plugin.
Public Class Methods
new()
click to toggle source
Calls superclass method
Bundler::Dsl::new
# File lib/bundler/plugin/dsl.rb, line 25 def initialize super @sources = Plugin::SourceList.new @inferred_plugins = [] # The source plugins inferred from :type end
Public Instance Methods
method_missing(name, *args)
click to toggle source
# File lib/bundler/plugin/dsl.rb, line 35 def method_missing(name, *args) raise PluginGemfileError, "Undefined local variable or method `#{name}' for Gemfile" unless Bundler::Dsl.method_defined? name end
plugin(name, *args)
click to toggle source
# File lib/bundler/plugin/dsl.rb, line 31 def plugin(name, *args) _gem(name, *args) end
source(source, *args, &blk)
click to toggle source
Calls superclass method
Bundler::Dsl#source
# File lib/bundler/plugin/dsl.rb, line 39 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