Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'pp'
  4.  
  5. def ruby_repl processor = nil
  6. unless (processor && Proc === processor) || block_given?
  7. warn "Please invoke `ruby_repl` with a block or a proc..."
  8. else
  9. in_pry = Kernel.const_defined?("Pry::ColorPrinter")
  10. cmd_count = 0 # for use in the command prompt
  11. loop do
  12. print "repl(%s):%d> " % [
  13. (in_pry ? Pry.view_clip(self) : self.inspect),
  14. (cmd_count += 1),
  15. ]
  16. input = gets
  17. ( puts ; break ) unless input
  18. input = input.chomp
  19. begin
  20. result = processor ? processor.call(input) : yield(input)
  21. print "=> "
  22. in_pry ? Pry::ColorPrinter.pp(result) : PP.pp(result)
  23. rescue
  24. puts "%s: %s" % [$!.class.name, $!.message]
  25. puts "from (repl):#{cmd_count}:in `__ruby_repl__'"
  26. end
  27. end
  28. end
  29. end
  30.  
  31. alias :repl :ruby_repl
  32. alias :rr :ruby_repl
  33.  
  34. if __FILE__ == $0
  35. require 'pry' rescue LoadError
  36. ruby_repl do |input| input ; end
  37. end
  38.  
  39. # That's all Folks!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement