class Bundler::Plugin::DSL
Dsl
用于解析 Gemfile 以查找要安装的插件
属性
inferred_plugins[R]
此列表列出了自动添加而不是由用户指定的插件。
当我们在源块中遇到 :type 属性时,我们会将名称为 bundler-source-<type> 的插件添加到要安装的插件列表中。
这些插件是可选的,当与其他任何插件发生冲突时不会安装。
公共类方法
new() 点击切换源代码
调用父类方法
Bundler::Dsl::new
# File bundler/plugin/dsl.rb, line 25 def initialize super @sources = Plugin::SourceList.new @inferred_plugins = [] # The source plugins inferred from :type end
公共实例方法
method_missing(name, *args) 点击切换源代码
# File 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) 点击切换源代码
# File bundler/plugin/dsl.rb, line 31 def plugin(name, *args) _gem(name, *args) end
source(source, *args, &blk) 点击切换源代码
调用父类方法
Bundler::Dsl#source
# File 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