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