Class: Bundler::Plugin::DSL
Relationships & Source Files | |
Namespace Children | |
Exceptions:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Bundler::Dsl
|
|
Instance Chain:
self,
::Bundler::Dsl ,
::Bundler::RubyDsl
|
|
Inherits: |
Bundler::Dsl
|
Defined in: | lib/bundler/plugin/dsl.rb |
Overview
::Bundler::Dsl
to parse the Gemfile looking for plugins to install
Constant Summary
::Bundler::Dsl
- Inherited
GITHUB_PULL_REQUEST_URL, GITLAB_MERGE_REQUEST_URL, VALID_KEYS, VALID_PLATFORMS
Class Method Summary
Instance Attribute Summary
-
#inferred_plugins
readonly
This lists the plugins that was added automatically and not specified by the user.
::Bundler::Dsl
- Inherited
Instance Method Summary
-
#_gem(name, *args)
Alias for Dsl#gem.
- #method_missing(name, *args)
- #plugin(name, *args)
- #source(source, *args, &blk)
::Bundler::Dsl
- Inherited
::Bundler::RubyDsl
- Included
#normalize_ruby_file | Support the various file formats found in .ruby-version files. |
#ruby |
Constructor Details
.new ⇒ DSL
# File 'lib/bundler/plugin/dsl.rb', line 25
def initialize super @sources = Plugin::SourceList.new @inferred_plugins = [] # The source plugins inferred from :type end
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args)
# 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
Instance Attribute Details
#inferred_plugins (readonly)
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.
# File 'lib/bundler/plugin/dsl.rb', line 23
attr_reader :inferred_plugins
Instance Method Details
#_gem(name, *args)
Alias for Dsl#gem.
# File 'lib/bundler/plugin/dsl.rb', line 8
alias_method :_gem, :gem # To use for plugin installation as gem
#plugin(name, *args)
[ GitHub ]# File 'lib/bundler/plugin/dsl.rb', line 31
def plugin(name, *args) _gem(name, *args) end
#source(source, *args, &blk)
[ GitHub ]# File 'lib/bundler/plugin/dsl.rb', line 39
def source(source, *args, &blk) = args.last.is_a?(Hash) ? args.pop.dup : {} = normalize_hash( ) return super unless .key?("type") plugin_name = "bundler-source-#{ ["type"]}" return if @dependencies.any? {|d| d.name == plugin_name } plugin(plugin_name) @inferred_plugins << plugin_name end