This is an interactive interpreter for JavaScript which is written in Ruby.
add this line to your Gemfile.
gem 'jsh'
or
$ gem install jsh
$ jsh
[0] jsh) 1 + 1;
2
[1] jsh) "hello world".length;
11
[2] jsh) (function fib(n){ return (n < 2) ? 1 : fib(n - 2) + fib(n - 1); })(10);
89
You can customize in these way. Then save and execute it.
require 'jsh'
JSH::Hooks.register(:before) do
puts "before hook!"
end
JSH::Hooks.register(:after) do
puts "after hook!"
end
JSH.start
Save this file as foo.rb
.
require 'jsh'
JSH::Commands.register(:enable_to_say) do |jsh|
jsh.context['say'] = lambda{|this, word, times| word * times }
end
JSH.start
Then execute it.
$ ruby foo.rb
[0] jsh) enable_to_say
[1] jsh) say('Hello', 3)
HelloHelloHello
readline option should be boolean.
default value is true
.
if set false
to this option, jsh will not use Readline to input.
if use --noprompt
, jsh will not print prompt.
The MIT License