Module: Toys::StandardMixins::Gems

Includes:
Mixin
Defined in:
core-docs/toys/standard_mixins/gems.rb

Overview

Defined in the toys-core gem

Provides methods for installing and activating third-party gems. When this mixin is included, it provides a gem method that has the same effect as Utils::Gems#activate, so you can ensure a gem is present when running a tool. A gem directive is likewise added to the tool DSL itself, so you can also ensure a gem is present when defining a tool.

Usage

Make these methods available to your tool by including this mixin in your tool:

include :gems

You can then call the mixin method #gem to ensure that a gem is installed and in the load path. For example:

tool "my_tool" do
  include :gems
  gem "nokogiri", "~> 1.15"
  def run
    # Do stuff with Nokogiri
  end
end

If you pass additional options to the include directive, those are used to initialize settings for the gem install process. For example:

include :gems, on_missing: :error

See Utils::Gems#initialize for a list of supported options.

Instance Method Summary collapse

Methods included from Mixin

create

Instance Method Details

#gem(name, *requirements) ⇒ void

This method returns an undefined value.

Activate the given gem. If it is not present, attempt to install it (or inform the user to update the bundle).

Parameters:

  • name (String)

    Name of the gem

  • requirements (String...)

    Version requirements



57
58
59
# File 'core-docs/toys/standard_mixins/gems.rb', line 57

def gem(name, *requirements)
  # Source available in the toys-core gem
end

#gemsToys::Utils::Gems

A tool-wide instance of Utils::Gems.

Returns:



45
46
47
# File 'core-docs/toys/standard_mixins/gems.rb', line 45

def gems
  # Source available in the toys-core gem
end