Sha256: 9983db103a46161e43cdf4dc517d9c0eeec8224a573591f85601ff20a56848dd
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true namespace :praxis do desc 'Run interactive REPL' task :console do # Use irb if available (which it almost always is). require 'irb' Rake::Task['praxis:environment'].invoke # Keep IRB.setup from complaining about bad ARGV options old_argv = ARGV.dup ARGV.clear IRB.setup nil ARGV.concat(old_argv) # Ensure that multi-irb has a context to work with (and, indirectly an instance of IRB::Irb). IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context # Allow reentrant IRB require 'irb/ext/multi-irb' # Ensure that we save history just like normal IRB require 'irb/ext/save-history' # Remove main object from prompt (its stringify is not useful) nickname = File.basename(::Praxis::Application.instance.root) IRB.conf[:PROMPT][:DEFAULT] = { PROMPT_I: "%N(#{nickname}):%03n:%i> ", PROMPT_N: "%N(#{nickname}):%03n:%i> ", PROMPT_S: "%N(#{nickname}):%03n:%i%l ", PROMPT_C: "%N(#{nickname}):%03n:%i* ", } # Disable inefficient, distracting autocomplete IRB.conf[:USE_AUTOCOMPLETE] = false # Invoke the REPL, then cleanly shut down IRB.irb(nil, Praxis::Application.instance) IRB.irb_at_exit end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
praxis-2.0.pre.39 | lib/praxis/tasks/console.rb |
praxis-2.0.pre.38 | lib/praxis/tasks/console.rb |
praxis-2.0.pre.37 | lib/praxis/tasks/console.rb |