therubyrhino 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
-