therubyracer 0.10.0beta1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of therubyracer might be problematic. Click here for more details.

@@ -0,0 +1,9 @@
1
+ rvm:
2
+ - 1.9.2
3
+ - 1.9.3
4
+ - 1.8.7
5
+ notifications:
6
+ recipients:
7
+ - cowboyd@thefrontside.net
8
+ script: bundle exec rake compile spec
9
+ before_install: git submodule update --init
data/README.md CHANGED
@@ -48,7 +48,7 @@ embed a ruby object into your scope and access its properties/methods from javas
48
48
  lhs + rhs
49
49
  end
50
50
  end
51
-
51
+
52
52
  cxt['math'] = MyMath.new
53
53
  cxt.eval("math.plus(20,22)") #=> 42
54
54
 
@@ -59,7 +59,7 @@ make a ruby object *be* your global javascript scope.
59
59
  cxt.eval("plus(20,22)") #=> 42
60
60
  end
61
61
 
62
- you can do the same thing with Object#eval_js
62
+ you can do the same thing with Object#eval_js
63
63
 
64
64
  math.eval_js("plus(20,22)")
65
65
 
@@ -96,14 +96,14 @@ exposed by default. E.g.
96
96
  super
97
97
  end
98
98
  end
99
-
99
+
100
100
  class B < A
101
101
  def b
102
102
  "b"
103
103
  end
104
104
  end
105
-
106
-
105
+
106
+
107
107
  V8::Context.new do |cxt|
108
108
  cxt['a'] = A.new
109
109
  cxt['b'] = B.new
@@ -138,6 +138,9 @@ To use the ruby racer in rails, or any application using Bundler to manage gems,
138
138
  bundle install
139
139
  rake compile
140
140
 
141
+ ## Sponsored by
142
+ <a href="http://thefrontside.net">![The Frontside](http://github.com/cowboyd/therubyracer/raw/master/thefrontside.png)</a>
143
+
141
144
  ## LICENSE:
142
145
 
143
146
  (The MIT License)
@@ -18,8 +18,8 @@ $CPPFLAGS += " -Wall" unless $CPPFLAGS.split.include? "-Wall"
18
18
  $CPPFLAGS += " -g" unless $CPPFLAGS.split.include? "-g"
19
19
  $CPPFLAGS += " -rdynamic" unless $CPPFLAGS.split.include? "-rdynamic"
20
20
 
21
- $DEFLIBPATH.unshift(Libv8.library_path)
22
- $LIBS << ' -lv8 -lpthread'
21
+ $LDFLAGS.insert 0, "#{Libv8.library_path}/libv8.#{$LIBEXT} "
22
+ $LIBS << ' -lpthread'
23
23
 
24
24
  CONFIG['LDSHARED'] = '$(CXX) -shared' unless RUBY_PLATFORM =~ /darwin/
25
25
 
@@ -1,4 +1,5 @@
1
1
 
2
+ #include <vector>
2
3
  #include "v8_function.h"
3
4
  #include "v8_object.h"
4
5
  #include "v8_handle.h"
@@ -21,11 +22,11 @@ namespace {
21
22
  Local<Object> thisObj = rr_rb2v8(recv)->ToObject();
22
23
  Handle<Array> args = rr_v8_handle<Array>(arguments);
23
24
  int argc = args->Length();
24
- Handle<Value> argv[argc];
25
+ std::vector< Handle<Value> > argv (argc);
25
26
  for (int i = 0; i < argc; i++) {
26
27
  argv[i] = args->Get(i);
27
28
  }
28
- return rr_v82rb(function->Call(thisObj, argc, argv));
29
+ return rr_v82rb(function->Call(thisObj, argc, &argv[0]));
29
30
  }
30
31
 
31
32
  VALUE NewInstance(VALUE self, VALUE arguments) {
@@ -33,11 +34,11 @@ namespace {
33
34
  Handle<Function> function = unwrap(self);
34
35
  Handle<Array> args = rr_v8_handle<Array>(arguments);
35
36
  int argc = args->Length();
36
- Handle<Value> argv[argc];
37
+ std::vector< Handle<Value> > argv (argc);
37
38
  for (int i = 0; i < argc; i++) {
38
39
  argv[i] = args->Get(i);
39
40
  }
40
- return rr_v82rb(function->NewInstance(argc, argv));
41
+ return rr_v82rb(function->NewInstance(argc, &argv[0]));
41
42
  }
42
43
  VALUE GetName(VALUE self) {
43
44
  HandleScope scope;
@@ -3,7 +3,7 @@ require 'ostruct'
3
3
 
4
4
  module V8
5
5
  module CLI
6
- def self.run(exename = 'v8', args = [])
6
+ def self.run(exename = 'v8', args = [])
7
7
  options = OpenStruct.new
8
8
  options.libs = []
9
9
  options.libdirs = []
@@ -30,12 +30,12 @@ module V8
30
30
  puts "V8 Version #{Libv8::V8_VERSION}"
31
31
  exit
32
32
  elsif options.selftest
33
- self.test
33
+ self.test
34
34
  end
35
35
  Context.new(:with => Shell.new) do |cxt|
36
36
  for libfile in options.libs do
37
37
  load(cxt,libfile)
38
- end
38
+ end
39
39
  if options.interactive
40
40
  repl(cxt, exename)
41
41
  elsif options.execute
@@ -60,35 +60,36 @@ module V8
60
60
  puts e
61
61
  end
62
62
  end
63
-
63
+
64
64
  def self.test
65
65
  begin
66
- require 'rubygems'
67
66
  require 'rspec'
67
+ specs = File.expand_path('../../../spec', __FILE__)
68
+ $:.unshift specs
68
69
  ARGV.clear
69
- ARGV << File.dirname(__FILE__) + '/../../spec/'
70
+ ARGV << specs
70
71
  ::RSpec::Core::Runner.autorun
71
72
  exit(0)
72
73
  rescue LoadError => e
73
74
  puts "selftest requires rspec to be installed (gem install rspec)"
74
75
  exit(1)
75
76
  end
76
-
77
+
77
78
  end
78
79
 
79
80
  def self.repl(cxt, exename)
80
81
  require 'readline'
81
82
  puts "help() for help. quit() to quit."
82
83
  puts "The Ruby Racer #{V8::VERSION}"
83
- puts "Vroom Vroom!"
84
+ puts "Vroom Vroom!"
84
85
  trap("SIGINT") do
85
86
  puts "^C"
86
- end
87
+ end
87
88
  loop do
88
89
  line = Readline.readline("#{exename}> ", true)
89
90
  begin
90
91
  result = cxt.eval(line, '<shell>')
91
- puts(result) unless result.nil?
92
+ puts(result) unless result.nil?
92
93
  rescue V8::JSError => e
93
94
  puts e.message
94
95
  puts e.backtrace(:javascript)
@@ -96,9 +97,9 @@ module V8
96
97
  puts e
97
98
  puts e.backtrace.join("\n")
98
99
  end
99
- end
100
- end
101
-
100
+ end
101
+ end
102
+
102
103
  class Shell
103
104
  def to_s
104
105
  "[object Shell]"
@@ -111,18 +112,18 @@ module V8
111
112
  def exit(status = 0)
112
113
  Kernel.exit(status)
113
114
  end
114
-
115
+
115
116
  alias_method :quit, :exit
116
-
117
+
117
118
  def help(*args)
118
119
  <<-HELP
119
120
  print(msg)
120
- print msg to STDOUT
121
-
121
+ print msg to STDOUT
122
+
122
123
  exit(status = 0)
123
124
  exit the shell
124
125
  also: quit()
125
-
126
+
126
127
  evalrb(source)
127
128
  evaluate some ruby source
128
129
  HELP
@@ -84,6 +84,10 @@ module V8
84
84
  []
85
85
  end
86
86
  end
87
+
88
+ def self.passes_this_argument?
89
+ true
90
+ end
87
91
  end
88
92
 
89
93
  module C
@@ -74,7 +74,7 @@ module V8
74
74
  if id = @rb_proxies_js2rb[object]
75
75
  ObjectSpace._id2ref id
76
76
  end
77
- rescue RangeError => e
77
+ rescue RangeError
78
78
  # sometimes, the Ruby proxy has been garbage collected, but
79
79
  # the finalizer which runs has not been called. That's OK
80
80
  # we just clear out the entry, and return nil so that a new
@@ -1,3 +1,3 @@
1
1
  module V8
2
- VERSION = "0.10.0beta1"
2
+ VERSION = "0.10.0"
3
3
  end
Binary file
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_dependency "libv8", "~> 3.3.10"
25
25
 
26
- s.add_development_dependency "rake", "0.8.7"
26
+ s.add_development_dependency "rake"
27
27
  s.add_development_dependency "rspec", "~> 2.0"
28
28
  s.add_development_dependency "rake-compiler"
29
29
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: therubyracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0beta1
5
- prerelease: 6
4
+ version: 0.10.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Charles Lowell
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-06 00:00:00.000000000Z
13
+ date: 2012-03-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: libv8
17
- requirement: &2151896520 !ruby/object:Gem::Requirement
17
+ requirement: &2152411380 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,21 +22,21 @@ dependencies:
22
22
  version: 3.3.10
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2151896520
25
+ version_requirements: *2152411380
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &2151895720 !ruby/object:Gem::Requirement
28
+ requirement: &2152410300 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
- - - =
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.7
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2151895720
36
+ version_requirements: *2152410300
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec
39
- requirement: &2151894900 !ruby/object:Gem::Requirement
39
+ requirement: &2152402840 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '2.0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2151894900
47
+ version_requirements: *2152402840
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake-compiler
50
- requirement: &2151894100 !ruby/object:Gem::Requirement
50
+ requirement: &2152398280 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2151894100
58
+ version_requirements: *2152398280
59
59
  description: Call javascript code and manipulate javascript objects from ruby. Call
60
60
  ruby code and manipulate ruby objects from javascript.
61
61
  email: cowboyd@thefrontside.net
@@ -68,6 +68,7 @@ files:
68
68
  - .gitignore
69
69
  - .gitmodules
70
70
  - .rspec
71
+ - .travis.yml
71
72
  - .yardopts
72
73
  - Changelog.md
73
74
  - Gemfile
@@ -152,6 +153,7 @@ files:
152
153
  - specmem/spec_helper.rb
153
154
  - specthread/spec_helper.rb
154
155
  - specthread/threading_spec.rb
156
+ - thefrontside.png
155
157
  - therubyracer.gemspec
156
158
  - spec/redjs/.gitignore
157
159
  - spec/redjs/README.txt
@@ -172,16 +174,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
174
  version: '0'
173
175
  segments:
174
176
  - 0
175
- hash: -1706553205254102038
177
+ hash: -3968721215230919371
176
178
  required_rubygems_version: !ruby/object:Gem::Requirement
177
179
  none: false
178
180
  requirements:
179
- - - ! '>'
181
+ - - ! '>='
180
182
  - !ruby/object:Gem::Version
181
- version: 1.3.1
183
+ version: '0'
184
+ segments:
185
+ - 0
186
+ hash: -3968721215230919371
182
187
  requirements: []
183
188
  rubyforge_project: therubyracer
184
- rubygems_version: 1.8.10
189
+ rubygems_version: 1.8.17
185
190
  signing_key:
186
191
  specification_version: 3
187
192
  summary: Embed the V8 Javascript interpreter into Ruby