Commit f516fe6a95dc6d3ecc36559b1e6c8815418d8667
- Date: Mon Apr 14 06:32:51 +0000 2008
- Committer: Ramsey Dow (yesmar@speakeasy.net)
- Author: Ramsey Dow (yesmar@speakeasy.net)
- Commit SHA1: f516fe6a95dc6d3ecc36559b1e6c8815418d8667
- Tree SHA1: 82582e87d2293c8c6ed9185a2fa139d5a16d209b
use old text entry system if require 'readline' fails
Commit diff
| |   |
| 1 | 1 | module Ditz |
| 2 | 2 | |
| 3 | 3 | VERSION = "0.2" |
| 4 | @has_readline=false |
| 4 | 5 | |
| 5 | 6 | def debug s |
| 6 | 7 | puts "# #{s}" if $opts[:verbose] |
| 7 | 8 | end |
| 8 | 9 | module_function :debug |
| 9 | 10 | |
| 11 | def self.has_readline? |
| 12 | @has_readline |
| 13 | end |
| 14 | |
| 15 | def self.has_readline=(val) |
| 16 | @has_readline=val |
| 17 | end |
| 18 | |
| 19 | end |
| 20 | |
| 21 | begin |
| 22 | require 'readline' |
| 23 | Ditz::has_readline=true |
| 24 | rescue LoadError |
| 25 | # do nothing |
| 10 | 26 | end |
| 11 | 27 | |
| 12 | 28 | require 'model-objects' |
| toggle raw diff |
--- a/lib/ditz.rb
+++ b/lib/ditz.rb
@@ -1,12 +1,28 @@
module Ditz
VERSION = "0.2"
+@has_readline=false
def debug s
puts "# #{s}" if $opts[:verbose]
end
module_function :debug
+def self.has_readline?
+ @has_readline
+end
+
+def self.has_readline=(val)
+ @has_readline=val
+end
+
+end
+
+begin
+ require 'readline'
+ Ditz::has_readline=true
+rescue LoadError
+ # do nothing
end
require 'model-objects' |
| |   |
| 1 | | require 'readline' |
| 2 | 1 | require 'tempfile' |
| 3 | 2 | require "util" |
| 4 | 3 | |
| … | … | |
| 83 | 83 | |
| 84 | 84 | while true |
| 85 | 85 | 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 |
| 87 | 92 | if opts[:default] |
| 88 | 93 | ans = opts[:default] if ans.blank? |
| 89 | 94 | else |
| … | … | |
| 114 | 114 | puts "#{q} (ctrl-d, ., or /stop to stop, /edit to edit, /reset to reset):" |
| 115 | 115 | ans = "" |
| 116 | 116 | while true |
| 117 | | line = Readline::readline('> ') |
| 117 | if Ditz::has_readline? |
| 118 | line = Readline::readline('> ') |
| 119 | else |
| 120 | (line = gets) && line.strip! |
| 121 | end |
| 118 | 122 | if line |
| 119 | | Readline::HISTORY.push(line) |
| 123 | if Ditz::has_readline? |
| 124 | Readline::HISTORY.push(line) |
| 125 | end |
| 120 | 126 | case line |
| 121 | 127 | when /^\.$/, "/stop" |
| 122 | 128 | break |
| toggle raw diff |
--- a/lib/lowline.rb
+++ b/lib/lowline.rb
@@ -1,4 +1,3 @@
-require 'readline'
require 'tempfile'
require "util"
@@ -84,7 +83,12 @@ module Lowline
while true
prompt = [q, default_s, tail].compact.join
- ans = Readline::readline(prompt)
+ if Ditz::has_readline?
+ ans = Readline::readline(prompt)
+ else
+ print prompt
+ ans = gets.strip
+ end
if opts[:default]
ans = opts[:default] if ans.blank?
else
@@ -110,9 +114,15 @@ module Lowline
puts "#{q} (ctrl-d, ., or /stop to stop, /edit to edit, /reset to reset):"
ans = ""
while true
- line = Readline::readline('> ')
+ if Ditz::has_readline?
+ line = Readline::readline('> ')
+ else
+ (line = gets) && line.strip!
+ end
if line
- Readline::HISTORY.push(line)
+ if Ditz::has_readline?
+ Readline::HISTORY.push(line)
+ end
case line
when /^\.$/, "/stop"
break |