class Gem::Tasks::Console
The ‘console` task.
def console(name=nil)
- 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)
-
: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