2009-09-24 20:06:31 -04:00
|
|
|
= therubyrhino
|
|
|
|
|
|
|
|
* http://github.com/cowboyd/therubyrhino
|
|
|
|
|
|
|
|
== DESCRIPTION:
|
|
|
|
|
|
|
|
Embed the Mozilla Rhino Javascript interpreter into Ruby
|
|
|
|
|
|
|
|
== FEATURES/PROBLEMS:
|
|
|
|
|
|
|
|
* Evaluate Javascript from with in Ruby
|
|
|
|
* Embed your Ruby objects into the Javascript world
|
|
|
|
|
|
|
|
== SYNOPSIS:
|
|
|
|
|
2009-09-24 22:45:05 -04:00
|
|
|
1. Javascript goes into Ruby
|
|
|
|
1. Ruby Objects goes into Javascript
|
|
|
|
1. Our shark's in the Javascript!
|
2009-09-24 21:37:06 -04:00
|
|
|
|
|
|
|
|
2009-10-06 10:18:13 -04:00
|
|
|
include Rhino
|
2009-09-24 22:45:05 -04:00
|
|
|
# evaluate some simple javascript
|
2009-09-24 20:06:31 -04:00
|
|
|
|
2009-09-24 22:45:05 -04:00
|
|
|
Rhino::Context.open do |context|
|
|
|
|
context.evaljs("7 * 6") #=> 42
|
|
|
|
end
|
2009-09-24 20:06:31 -04:00
|
|
|
|
2009-09-24 22:45:05 -04:00
|
|
|
# evaluate a ruby function from javascript
|
|
|
|
|
|
|
|
Rhino::Context.open do |context|
|
2009-10-06 10:18:13 -04:00
|
|
|
scope = context.init_standard_objects
|
|
|
|
scope["say"] = function {|word, times| word * times}
|
|
|
|
context.evaljs("say("Hello", 3)") #=> HelloHelloHello
|
|
|
|
end
|
|
|
|
|
|
|
|
# Configure your embedding setup
|
|
|
|
|
|
|
|
Rhino::Context.open do |context|
|
|
|
|
# Make your standard objects (Object, String, etc...) immutable
|
|
|
|
scope = context.init_standard_objects(:sealed => true)
|
|
|
|
context.evaljs("Object.prototype.toString = function() {}") # this is an error!
|
|
|
|
|
|
|
|
#Turn on Java integration from javascript (probably a bad idea)
|
|
|
|
scope = context.init_standard_objects(:java => true)
|
|
|
|
context.evaljs("java.lang.System.exit()") #it's dangerous!
|
2009-09-24 20:06:31 -04:00
|
|
|
end
|
|
|
|
== REQUIREMENTS:
|
|
|
|
|
2009-09-24 20:13:30 -04:00
|
|
|
* JRuby >= 1.3.0
|
2009-09-24 20:06:31 -04:00
|
|
|
|
|
|
|
== INSTALL:
|
|
|
|
|
|
|
|
* jgem install therubyrhino
|
|
|
|
|
|
|
|
== LICENSE:
|
|
|
|
|
|
|
|
(The MIT License)
|
|
|
|
|
|
|
|
Copyright (c) 2009 Charles Lowell
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
|
|
a copy of this software and associated documentation files (the
|
|
|
|
'Software'), to deal in the Software without restriction, including
|
|
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
|
|
the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|