class Gem::Tasks::Console


The ‘console` task.

def console(name=nil)

Other tags:
    Api: - semipublic

Returns:
  • (Array) -

Parameters:
  • name (Symbol, String) --
def console(name=nil)
  gemspec = @project.gemspec(name)
  require_paths = gemspec.require_paths
  require_file  = gemspec.name.gsub('-',File::SEPARATOR)
  arguments = [@command]
  # add -I options for lib/ or ext/ directories
  arguments.push(*require_paths.map { |dir| "-I#{dir}" })
  # add an -r option to require the library
  arguments.push("-r#{require_file}")
  # push on additional options
  arguments.push(*@options)
  if @project.bundler?
    # run under `bundle exec`
    arguments.unshift('bundle', 'exec')
  end
  return run(*arguments)
end

def define


Defines the `console` task.
def define
  @project.gemspecs.each_key do |name|
    namespace :console do
      task(name) { console(name) }
    end
  end
  desc "Spawns an Interactive Ruby Console"
  task :console => "console:#{@project.primary_gemspec}"
end

def initialize(options={})

Options Hash: (**options)
  • :options (Array) --
  • :command (String) --

Parameters:
  • options (Hash) --
def initialize(options={})
  super()
  @command = options.fetch(:command,DEFAULT_COMMAND)
  @options = Array(options[:options])
  yield self if block_given?
  define
end