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
# File lib/bundler/plugin/dsl.rb, line 25 def initialize super @sources = Plugin::SourceList.new @inferred_plugins = [] # The source plugins inferred from :type end
Calls superclass method
Bundler::Dsl::new
Public Instance Methods
# 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
# File lib/bundler/plugin/dsl.rb, line 31 def plugin(name, *args) _gem(name, *args) end
# 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
Calls superclass method
Bundler::Dsl#source
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.