Sha256: cc3b1e3d0621627f2197e996995c7be6d49557daa5bf32a45a6be32de332c4c6
Contents?: true
Size: 1.36 KB
Versions: 7
Compression:
Stored size: 1.36 KB
Contents
# encoding: UTF-8 # require 'watchr' module ::Spontaneous::Cli class Console < ::Thor include Spontaneous::Cli::TaskUtils include Thor::Actions namespace :console default_task :open desc "open", "Gives you console access to the current site" def open prepare! :console ARGV.clear ARGV.concat [ "--readline", "--prompt-mode", "simple" ] require 'irb' require 'irb/completion' require 'irb/ext/save-history' history_file = ::Spontaneous.root / ".irb_history" IRB.setup(nil) IRB.conf[:SAVE_HISTORY] = 100 IRB.conf[:HISTORY_FILE] = history_file irb = IRB::Irb.new IRB.conf[:MAIN_CONTEXT] = irb.context irb.context.evaluate((<<-CONTEXT), __LINE__) module Readline module History def self.write_log(line) File.open('#{history_file}', 'ab') {|f| f << "\#{line}\n"} end end alias :old_readline :readline def readline(*args) ln = old_readline(*args) begin History.write_log(ln) unless ln.strip.empty? rescue end ln end end CONTEXT trap("SIGINT") do irb.signal_handle end catch("IRB_EXIT") do irb.eval_input end end end # Console end # ::Spontaneous::Cli
Version data entries
7 entries across 7 versions & 1 rubygems