therubyrhino 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eee1c4a4933c0a914ccffeb49c390807403d25e1
4
+ data.tar.gz: 38c583809186d31db93ff6f5ddcfa996532a181c
5
+ SHA512:
6
+ metadata.gz: 001058b9b1923bb6f29c21ba8e0c1a007c54057a7307f4d0c4e12681073b050c4ffe9420921b0431696e44a2cddf1f7bf2ad4e61d6c76dcf6cc3500af1ef0bf1
7
+ data.tar.gz: 3dba6c0a9383181e58534561860f29be78e85b524b9ccfc7f29c97eadf2511ac8e77f1521d29781d2b6ac5976c5f82cc1d61695819f728ba7050899b9c498230
data/lib/rhino/context.rb CHANGED
@@ -46,23 +46,23 @@ module Rhino
46
46
  def eval(javascript)
47
47
  new.eval(javascript)
48
48
  end
49
-
49
+
50
50
  end
51
-
51
+
52
52
  @@default_factory = nil
53
53
  def self.default_factory
54
54
  @@default_factory ||= ContextFactory.new
55
55
  end
56
-
56
+
57
57
  def self.default_factory=(factory)
58
58
  @@default_factory = factory
59
59
  end
60
-
60
+
61
61
  @@default_optimization_level = java.lang.Integer.getInteger('rhino.opt.level')
62
62
  def self.default_optimization_level
63
63
  @@default_optimization_level
64
64
  end
65
-
65
+
66
66
  def self.default_optimization_level=(level)
67
67
  @@default_optimization_level = level
68
68
  end
@@ -71,35 +71,22 @@ module Rhino
71
71
  def self.default_javascript_version
72
72
  @@default_javascript_version
73
73
  end
74
-
74
+
75
75
  def self.default_javascript_version=(version)
76
76
  @@default_javascript_version = version
77
77
  end
78
78
 
79
79
  attr_reader :scope
80
-
80
+
81
81
  # Create a new javascript environment for executing javascript and ruby code.
82
82
  # * <tt>:sealed</tt> - if this is true, then the standard objects such as Object, Function, Array will not be able to be modified
83
83
  # * <tt>:with</tt> - use this ruby object as the root scope for all javascript that is evaluated
84
84
  # * <tt>:java</tt> - if true, java packages will be accessible from within javascript
85
85
  def initialize(options = {}) #:nodoc:
86
- factory = options[:factory] ||
86
+ factory = options[:factory] ||
87
87
  (options[:restrictable] ? RestrictableContextFactory.instance : self.class.default_factory)
88
- factory.call do |context|
89
- @native = context
90
- @global = @native.initStandardObjects(nil, options[:sealed] == true)
91
- if with = options[:with]
92
- @scope = Rhino.to_javascript(with)
93
- @scope.setParentScope(@global)
94
- else
95
- @scope = @global
96
- end
97
- unless options[:java]
98
- for package in ["Packages", "java", "javax", "org", "com", "edu", "net"]
99
- @global.delete(package)
100
- end
101
- end
102
- end
88
+ @options = options
89
+ factory.call(self) # org.mozilla.javascript.ContextAction (invokes #run)
103
90
  if optimization_level = options[:optimization_level] || self.class.default_optimization_level
104
91
  self.optimization_level = optimization_level
105
92
  end
@@ -108,12 +95,32 @@ module Rhino
108
95
  end
109
96
  yield(self) if block_given?
110
97
  end
111
-
98
+
99
+ include JS::ContextAction
100
+
101
+ # org.mozilla.javascript.ContextAction public Object run(Context context);
102
+ def run(context) # :nodoc:
103
+ @native = context
104
+ @global = @native.initStandardObjects(nil, @options[:sealed] == true)
105
+ if with = @options[:with]
106
+ @scope = Rhino.to_javascript(with)
107
+ @scope.setParentScope(@global)
108
+ else
109
+ @scope = @global
110
+ end
111
+ unless @options[:java]
112
+ @global.delete('Packages')
113
+ @global.delete('java'); @global.delete('javax')
114
+ @global.delete('org'); @global.delete('com')
115
+ @global.delete('edu'); @global.delete('net')
116
+ end
117
+ end
118
+
112
119
  # Returns the ContextFactory used while creating this context.
113
120
  def factory
114
121
  @native.getFactory
115
122
  end
116
-
123
+
117
124
  # Read a value from the global scope of this context
118
125
  def [](key)
119
126
  @scope[key]
@@ -139,7 +146,7 @@ module Rhino
139
146
  Rhino.to_ruby(result)
140
147
  end
141
148
  end
142
-
149
+
143
150
  def evaluate(*args) # :nodoc:
144
151
  eval(*args) # an alias
145
152
  end
@@ -161,11 +168,11 @@ module Rhino
161
168
  def restrictable?
162
169
  @native.is_a?(RestrictableContextFactory::Context)
163
170
  end
164
-
171
+
165
172
  def instruction_limit
166
173
  restrictable? ? @native.instruction_limit : false
167
174
  end
168
-
175
+
169
176
  # Set the maximum number of instructions that this context will execute.
170
177
  # If this instruction limit is exceeded, then a #Rhino::RunawayScriptError
171
178
  # will be raised.
@@ -173,7 +180,7 @@ module Rhino
173
180
  if restrictable?
174
181
  @native.instruction_limit = limit
175
182
  else
176
- raise "setting an instruction_limit has no effect on this context, use " +
183
+ raise "setting an instruction_limit has no effect on this context, use " <<
177
184
  "Context.open(:restrictable => true) to gain a restrictable instance"
178
185
  end
179
186
  end
@@ -181,7 +188,7 @@ module Rhino
181
188
  def timeout_limit
182
189
  restrictable? ? @native.timeout_limit : false
183
190
  end
184
-
191
+
185
192
  # Set the duration (in seconds e.g. 1.5) this context is allowed to execute.
186
193
  # After the timeout passes (no matter if any JS has been evaluated) and this
187
194
  # context is still attempted to run code, a #Rhino::ScriptTimeoutError will
@@ -190,15 +197,15 @@ module Rhino
190
197
  if restrictable?
191
198
  @native.timeout_limit = limit
192
199
  else
193
- raise "setting an timeout_limit has no effect on this context, use " +
200
+ raise "setting an timeout_limit has no effect on this context, use " <<
194
201
  "Context.open(:restrictable => true) to gain a restrictable instance"
195
202
  end
196
203
  end
197
-
204
+
198
205
  def optimization_level
199
206
  @native.getOptimizationLevel
200
207
  end
201
-
208
+
202
209
  # Set the optimization level that this context will use. This is sometimes necessary
203
210
  # in Rhino, if the bytecode size of the compiled javascript exceeds the 64KB limit.
204
211
  # By using the -1 optimization level, you tell Rhino to run in interpretative mode,
@@ -213,7 +220,7 @@ module Rhino
213
220
  end
214
221
  end
215
222
 
216
- # Get the JS interpreter version.
223
+ # Get the JS interpreter version.
217
224
  # Returns a number e.g. 1.7, nil if unknown and 0 for default.
218
225
  def javascript_version
219
226
  case const_value = @native.getLanguageVersion
@@ -223,7 +230,7 @@ module Rhino
223
230
  end
224
231
  end
225
232
  alias :version :javascript_version
226
-
233
+
227
234
  # Sets interpreter mode a.k.a. JS language version e.g. 1.7 (if supported).
228
235
  def javascript_version=(version)
229
236
  const = version.to_s.gsub('.', '_').upcase
@@ -237,9 +244,9 @@ module Rhino
237
244
  nil
238
245
  end
239
246
  end
240
- alias :version= :javascript_version=
241
-
242
- # Enter this context for operations.
247
+ alias :version= :javascript_version=
248
+
249
+ # Enter this context for operations.
243
250
  # Some methods such as eval() will fail unless the context is open.
244
251
  def open(&block)
245
252
  do_open(&block)
@@ -251,9 +258,9 @@ module Rhino
251
258
  end
252
259
  raise Rhino::JSError.new(e)
253
260
  end
254
-
261
+
255
262
  private
256
-
263
+
257
264
  def do_open # :nodoc
258
265
  factory.enterContext(@native)
259
266
  begin
@@ -262,7 +269,7 @@ module Rhino
262
269
  factory.exit
263
270
  end
264
271
  end
265
-
272
+
266
273
  CODE_GENERATION_ERROR_MESSAGE = 'generated bytecode for method exceeds 64K limit' # :nodoc
267
274
 
268
275
  CODE_GENERATION_TRACE_CLASS_NAME = 'org.mozilla.javascript.optimizer.Codegen' # :nodoc
@@ -316,7 +323,7 @@ module Rhino
316
323
  return jstr.length
317
324
  end
318
325
  end
319
-
326
+
320
327
  end
321
328
 
322
329
  ContextFactory = JS::ContextFactory # :nodoc: backward compatibility
@@ -327,24 +334,24 @@ module Rhino
327
334
  def self.instance
328
335
  @@instance ||= new
329
336
  end
330
-
337
+
331
338
  # protected Context makeContext()
332
339
  def makeContext
333
340
  Context.new(self)
334
341
  end
335
-
342
+
336
343
  # protected void observeInstructionCount(Context context, int instructionCount)
337
344
  def observeInstructionCount(context, count)
338
345
  context.check!(count) if context.is_a?(Context)
339
346
  end
340
-
341
- # protected Object doTopCall(Callable callable, Context context,
347
+
348
+ # protected Object doTopCall(Callable callable, Context context,
342
349
  # Scriptable scope, Scriptable thisObj, Object[] args)
343
350
  def doTopCall(callable, context, scope, this, args)
344
351
  context.reset! if context.is_a?(Context)
345
352
  super
346
353
  end
347
-
354
+
348
355
  class Context < JS::Context # :nodoc:
349
356
 
350
357
  def initialize(factory)
@@ -353,7 +360,7 @@ module Rhino
353
360
  end
354
361
 
355
362
  attr_reader :instruction_limit
356
-
363
+
357
364
  def instruction_limit=(limit)
358
365
  treshold = getInstructionObserverThreshold
359
366
  if limit && (treshold == 0 || treshold > limit)
@@ -363,11 +370,11 @@ module Rhino
363
370
  end
364
371
 
365
372
  attr_reader :instruction_count
366
-
373
+
367
374
  TIMEOUT_INSTRUCTION_TRESHOLD = 42
368
-
375
+
369
376
  attr_reader :timeout_limit
370
-
377
+
371
378
  def timeout_limit=(limit) # in seconds
372
379
  treshold = getInstructionObserverThreshold
373
380
  if limit && (treshold == 0 || treshold > TIMEOUT_INSTRUCTION_TRESHOLD)
@@ -375,9 +382,9 @@ module Rhino
375
382
  end
376
383
  @timeout_limit = limit
377
384
  end
378
-
385
+
379
386
  attr_reader :start_time
380
-
387
+
381
388
  def check!(count = nil)
382
389
  @instruction_count += count if count
383
390
  check_instruction_limit!
@@ -389,7 +396,7 @@ module Rhino
389
396
  raise RunawayScriptError, "script exceeded allowable instruction count: #{instruction_limit}"
390
397
  end
391
398
  end
392
-
399
+
393
400
  def check_timeout_limit!(count = nil)
394
401
  if timeout_limit
395
402
  elapsed_time = Time.now.to_f - start_time.to_f
@@ -410,17 +417,17 @@ module Rhino
410
417
  end
411
418
  end
412
419
  end
413
-
420
+
414
421
  def reset!
415
422
  @instruction_count = 0
416
423
  @start_time = Time.now
417
424
  self
418
425
  end
419
-
426
+
420
427
  end
421
-
428
+
422
429
  end
423
-
430
+
424
431
  class ContextError < StandardError # :nodoc:
425
432
  end
426
433
 
@@ -429,5 +436,5 @@ module Rhino
429
436
 
430
437
  class ScriptTimeoutError < ContextError # :nodoc:
431
438
  end
432
-
439
+
433
440
  end
data/lib/rhino/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rhino
2
- VERSION = "2.0.3"
2
+ VERSION = "2.0.4"
3
3
  end
@@ -1,40 +1,40 @@
1
1
  require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
2
 
3
3
  describe Rhino::JSError do
4
-
4
+
5
5
  it "works as a StandardError with a message being passed" do
6
6
  js_error = Rhino::JSError.new 'an error message'
7
7
  lambda { js_error.to_s && js_error.inspect }.should_not raise_error
8
-
8
+
9
9
  js_error.cause.should be nil
10
10
  js_error.message.should == 'an error message'
11
11
  js_error.javascript_backtrace.should be nil
12
12
  end
13
-
13
+
14
14
  it "might wrap a RhinoException wrapped in a NativeException like error" do
15
15
  # JRuby's NativeException.new(rhino_e) does not work as it is
16
16
  # intended to handle Java exceptions ... no new on the Ruby side
17
17
  native_error_class = Class.new(RuntimeError) do
18
-
18
+
19
19
  def initialize(cause)
20
20
  @cause = cause
21
21
  end
22
-
22
+
23
23
  def cause
24
24
  @cause
25
25
  end
26
-
26
+
27
27
  end
28
-
28
+
29
29
  rhino_e = Rhino::JS::JavaScriptException.new("42".to_java)
30
30
  js_error = Rhino::JSError.new native_error_class.new(rhino_e)
31
31
  lambda { js_error.to_s && js_error.inspect }.should_not raise_error
32
-
32
+
33
33
  js_error.cause.should be rhino_e
34
34
  js_error.message.should == '42'
35
35
  js_error.javascript_backtrace.should_not be nil
36
36
  end
37
-
37
+
38
38
  it "keeps the thrown javascript object value" do
39
39
  begin
40
40
  Rhino::Context.eval "throw { foo: 'bar' }"
@@ -73,17 +73,17 @@ describe Rhino::JSError do
73
73
  fail "expected to rescue"
74
74
  end
75
75
  end
76
-
76
+
77
77
  it "has a correct javascript backtrace" do
78
78
  begin
79
79
  Rhino::Context.eval "throw 42"
80
80
  rescue => e
81
+ # [ "at <eval>:1", "at org/mozilla/javascript/gen/<eval>:1" ]
81
82
  e.javascript_backtrace.should be_a Enumerable
82
- e.javascript_backtrace.size.should == 1
83
+ e.javascript_backtrace.size.should >= 1
83
84
  e.javascript_backtrace[0].should == "at <eval>:1"
84
-
85
85
  e.javascript_backtrace(true).should be_a Enumerable
86
- e.javascript_backtrace(true).size.should == 1
86
+ e.javascript_backtrace(true).size.should >= 1
87
87
  element = e.javascript_backtrace(true)[0]
88
88
  element.file_name.should == '<eval>'
89
89
  element.function_name.should be nil
@@ -97,14 +97,14 @@ describe Rhino::JSError do
97
97
  begin
98
98
  Rhino::Context.eval "function fortyTwo() { throw 42 }\n fortyTwo()"
99
99
  rescue => e
100
- e.javascript_backtrace.size.should == 2
100
+ e.javascript_backtrace.size.should >= 2
101
101
  e.javascript_backtrace[0].should == "at <eval>:1 (fortyTwo)"
102
- e.javascript_backtrace[1].should == "at <eval>:2"
102
+ expect( e.javascript_backtrace.find { |trace| trace == "at <eval>:2" } ).to_not be nil
103
103
  else
104
104
  fail "expected to rescue"
105
105
  end
106
106
  end
107
-
107
+
108
108
  it "backtrace starts with the javascript part" do
109
109
  begin
110
110
  Rhino::Context.eval "throw 42"
@@ -149,7 +149,7 @@ describe Rhino::JSError do
149
149
  fail "expected to rescue"
150
150
  end
151
151
  end
152
-
152
+
153
153
  it "raises correct error from function#apply" do
154
154
  begin
155
155
  context = Rhino::Context.new
@@ -166,7 +166,7 @@ describe Rhino::JSError do
166
166
  it "prints info about nested (ruby) error" do
167
167
  context = Rhino::Context.new
168
168
  klass = Class.new do
169
- def hello(arg = 42)
169
+ def hello(arg = 42)
170
170
  raise RuntimeError, 'hello' if arg != 42
171
171
  end
172
172
  end
@@ -189,5 +189,5 @@ describe Rhino::JSError do
189
189
  # from at hi (<eval>:1:28)
190
190
  # from (irb):9
191
191
  end
192
-
192
+
193
193
  end
metadata CHANGED
@@ -1,127 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: therubyrhino
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 2.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.4
6
5
  platform: ruby
7
- authors:
8
- - Charles Lowell
9
- autorequire:
6
+ authors:
7
+ - Charles Lowell
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2014-02-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: therubyrhino_jar
17
- version_requirements: &id001 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.7.3
23
- requirement: *id001
24
- prerelease: false
25
- type: :runtime
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
- version_requirements: &id002 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 2.14.1
34
- requirement: *id002
35
- prerelease: false
36
- type: :development
37
- - !ruby/object:Gem::Dependency
38
- name: mocha
39
- version_requirements: &id003 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- version: 0.13.3
45
- requirement: *id003
46
- prerelease: false
47
- type: :development
11
+ date: 2014-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: therubyrhino_jar
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.7.3
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - '>='
23
+ - !ruby/object:Gem::Version
24
+ version: 1.7.3
25
+ prerelease: false
26
+ type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 2.14.1
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 2.14.1
39
+ prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: mocha
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.13.3
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: 0.13.3
53
+ prerelease: false
54
+ type: :development
48
55
  description: Call javascript code and manipulate javascript objects from ruby. Call ruby code and manipulate ruby objects from javascript.
49
56
  email: cowboyd@thefrontside.net
50
57
  executables: []
51
-
52
58
  extensions: []
53
-
54
- extra_rdoc_files:
55
- - README.md
56
- files:
57
- - .gitignore
58
- - .rspec
59
- - .travis.yml
60
- - Gemfile
61
- - History.md
62
- - README.md
63
- - Rakefile
64
- - lib/rhino.rb
65
- - lib/rhino/context.rb
66
- - lib/rhino/deprecations.rb
67
- - lib/rhino/error.rb
68
- - lib/rhino/object.rb
69
- - lib/rhino/rhino_ext.rb
70
- - lib/rhino/ruby.rb
71
- - lib/rhino/ruby/access.rb
72
- - lib/rhino/ruby/attribute_access.rb
73
- - lib/rhino/ruby/default_access.rb
74
- - lib/rhino/version.rb
75
- - lib/rhino/wormhole.rb
76
- - spec/rhino/access_spec.rb
77
- - spec/rhino/context_spec.rb
78
- - spec/rhino/deprecations_spec.rb
79
- - spec/rhino/error_spec.rb
80
- - spec/rhino/integration/bar.js
81
- - spec/rhino/integration/foo.js
82
- - spec/rhino/integration/index.js
83
- - spec/rhino/integration/loop.js
84
- - spec/rhino/integration/loop/element1.js
85
- - spec/rhino/integration/loop/element2.js
86
- - spec/rhino/integration_spec.rb
87
- - spec/rhino/redjs_spec.rb
88
- - spec/rhino/rhino_ext_spec.rb
89
- - spec/rhino/ruby_spec.rb
90
- - spec/rhino/wormhole_spec.rb
91
- - spec/spec_helper.rb
92
- - therubyrhino.gemspec
59
+ extra_rdoc_files:
60
+ - README.md
61
+ files:
62
+ - .gitignore
63
+ - .rspec
64
+ - .travis.yml
65
+ - Gemfile
66
+ - History.md
67
+ - README.md
68
+ - Rakefile
69
+ - lib/rhino.rb
70
+ - lib/rhino/context.rb
71
+ - lib/rhino/deprecations.rb
72
+ - lib/rhino/error.rb
73
+ - lib/rhino/object.rb
74
+ - lib/rhino/rhino_ext.rb
75
+ - lib/rhino/ruby.rb
76
+ - lib/rhino/ruby/access.rb
77
+ - lib/rhino/ruby/attribute_access.rb
78
+ - lib/rhino/ruby/default_access.rb
79
+ - lib/rhino/version.rb
80
+ - lib/rhino/wormhole.rb
81
+ - spec/rhino/access_spec.rb
82
+ - spec/rhino/context_spec.rb
83
+ - spec/rhino/deprecations_spec.rb
84
+ - spec/rhino/error_spec.rb
85
+ - spec/rhino/integration/bar.js
86
+ - spec/rhino/integration/foo.js
87
+ - spec/rhino/integration/index.js
88
+ - spec/rhino/integration/loop.js
89
+ - spec/rhino/integration/loop/element1.js
90
+ - spec/rhino/integration/loop/element2.js
91
+ - spec/rhino/integration_spec.rb
92
+ - spec/rhino/redjs_spec.rb
93
+ - spec/rhino/rhino_ext_spec.rb
94
+ - spec/rhino/ruby_spec.rb
95
+ - spec/rhino/wormhole_spec.rb
96
+ - spec/spec_helper.rb
97
+ - therubyrhino.gemspec
93
98
  homepage: http://github.com/cowboyd/therubyrhino
94
- licenses:
95
- - MIT
96
- post_install_message:
99
+ licenses:
100
+ - MIT
101
+ metadata: {}
102
+ post_install_message:
97
103
  rdoc_options: []
98
-
99
- require_paths:
100
- - lib
101
- required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 2
107
- segments:
108
- - 0
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
111
- none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 2
116
- segments:
117
- - 0
118
- version: "0"
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
119
116
  requirements: []
120
-
121
117
  rubyforge_project: therubyrhino
122
- rubygems_version: 1.8.29
123
- signing_key:
124
- specification_version: 3
118
+ rubygems_version: 2.2.2
119
+ signing_key:
120
+ specification_version: 4
125
121
  summary: Embed the Rhino JavaScript interpreter into JRuby
126
122
  test_files: []
127
-