Commit f516fe6a95dc6d3ecc36559b1e6c8815418d8667

use old text entry system if require 'readline' fails

Commit diff

lib/ditz.rb

 
11module Ditz
22
33VERSION = "0.2"
4@has_readline=false
45
56def debug s
67 puts "# #{s}" if $opts[:verbose]
78end
89module_function :debug
910
11def self.has_readline?
12 @has_readline
13end
14
15def self.has_readline=(val)
16 @has_readline=val
17end
18
19end
20
21begin
22 require 'readline'
23 Ditz::has_readline=true
24rescue LoadError
25 # do nothing
1026end
1127
1228require 'model-objects'
toggle raw diff

lib/lowline.rb

 
1require 'readline'
21require 'tempfile'
32require "util"
43
8383
8484 while true
8585 prompt = [q, default_s, tail].compact.join
86 ans = Readline::readline(prompt)
86 if Ditz::has_readline?
87 ans = Readline::readline(prompt)
88 else
89 print prompt
90 ans = gets.strip
91 end
8792 if opts[:default]
8893 ans = opts[:default] if ans.blank?
8994 else
114114 puts "#{q} (ctrl-d, ., or /stop to stop, /edit to edit, /reset to reset):"
115115 ans = ""
116116 while true
117 line = Readline::readline('> ')
117 if Ditz::has_readline?
118 line = Readline::readline('> ')
119 else
120 (line = gets) && line.strip!
121 end
118122 if line
119 Readline::HISTORY.push(line)
123 if Ditz::has_readline?
124 Readline::HISTORY.push(line)
125 end
120126 case line
121127 when /^\.$/, "/stop"
122128 break
toggle raw diff