bin/icontact in SFEley-acts_as_icontact-0.3.2 vs bin/icontact in SFEley-acts_as_icontact-0.4.0
- old
+ new
@@ -1,20 +1,31 @@
#!/usr/bin/env ruby
$:.unshift File.dirname(__FILE__) + "/../lib"
-require 'acts_as_icontact'
require 'rubygems'
+require 'acts_as_icontact'
require 'readline'
-require 'bond'
-require 'bond/completion'
+require 'acts_as_icontact/command_line/completion'
+require 'acts_as_icontact/command_line/variables'
module ActsAsIcontact
+
# Lifted from: http://tagaholic.me/2009/07/23/mini-irb-and-mini-script-console.html
history_file = File.join(ENV["HOME"], '.icontact_history')
IO.readlines(history_file).each {|e| Readline::HISTORY << e.chomp } if File.exists?(history_file)
- print "# ActsAsIcontact command line (type 'exit' to quit)\n"
- while (input = Readline.readline("\n>> ", true)) != 'exit'
- begin puts "=> #{eval(input).inspect}"; rescue Exception; puts "Error: #{$!}" end
+ print "# ActsAsIcontact command line (type 'quit' or 'exit' to quit)\n"
+ loop do
+ case input = Readline.readline("\n>> ", true)
+ when /^(exit|quit)$/
+ break
+ when /^[a-z][\w\d_]*\s*=/ # Keep local variable assignments from becoming black holes
+ input = "self." + input
+ end
+ begin
+ puts "=> #{eval(input).inspect}"
+ rescue Exception
+ puts "Error: #{$!}"
+ end
end
File.open(history_file, 'w') {|f| f.write Readline::HISTORY.to_a.join("\n") }
end