opal 0.4.1 → 0.4.2

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: 21f31bff5e89852e9643aec27ca8a41008a42130
4
+ data.tar.gz: 5958461f09fa61100fd1c3b8a95aed70705687bc
5
+ SHA512:
6
+ metadata.gz: 2825d7fea9566cf8e272099bb73e902575aa0ae64aa8e81bde751f5ddbd5d5a0a6150c2faaea775308b666e5bc0925a190d92c05d58b011626967bb7ea457978
7
+ data.tar.gz: 0a0d9f6d6759512726088751d88518f75041b6c890d9f76a316a7dc75bb74e97bf37aaa250d640eba4e053078fe42d2c3a2a38f1025310fdb96c23fb14c3f5de
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## edge
2
+
3
+ ## 0.4.2 2013-07-03
4
+
5
+ * Added `Kernel#rand`. (fntzr)
6
+
7
+ * Restored the `bin/opal` executable in gemspec.
8
+
9
+ * Now `.valueOf()` is used in `#to_n` of Boolean, Numeric, Regexp and String
10
+ to return the naked JavaScript value instead of a wrapping object.
11
+
12
+ * Parser now wraps or-ops in paranthesis to stop variable order from
13
+ leaking out when minified by uglify. We now have code in this
14
+ format: `(((tmp = lhs) !== false || !==nil) ? tmp : rhs)`.
15
+
1
16
  ## 0.4.1 2013-06-16
2
17
 
3
18
  * Move sprockets logic out to external opal-sprockets gem. That now
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'bundler'
2
2
  Bundler.require
3
+ Bundler::GemHelper.install_tasks
3
4
 
4
5
  require 'rack'
5
6
  require 'webrick'
@@ -11,19 +12,19 @@ class RunSpec
11
12
 
12
13
  ENV['OPAL_SPEC'] = file.nil? ? ["#{Dir.pwd}/spec/"].join(',') : file.join(',')
13
14
 
15
+ build_specs
16
+
14
17
  server = fork do
15
- serv = Opal::Server.new { |s|
16
- s.append_path 'spec' # before mspec, so we use our overrides
17
- s.use_gem 'mspec'
18
- s.debug = false
19
- s.main = 'ospec/main'
20
- }
21
-
22
- Rack::Server.start(:app => serv, :Port => 9999, :AccessLog => [],
18
+ app = Rack::Builder.app do
19
+ use Rack::ShowExceptions
20
+ run Rack::Directory.new('.')
21
+ end
22
+
23
+ Rack::Server.start(:app => app, :Port => 9999, :AccessLog => [],
23
24
  :Logger => WEBrick::Log.new("/dev/null"))
24
25
  end
25
26
 
26
- system "phantomjs \"spec/ospec/sprockets.js\" \"http://localhost:9999/\""
27
+ system "phantomjs \"spec/ospec/sprockets.js\" \"http://localhost:9999/spec/index.html\""
27
28
  success = $?.success?
28
29
 
29
30
  exit 1 unless success
@@ -32,6 +33,29 @@ class RunSpec
32
33
  Process.kill(:SIGINT, server)
33
34
  Process.wait
34
35
  end
36
+
37
+ def build_specs
38
+ env = Opal::Environment.new
39
+ env.append_path 'spec'
40
+ env.use_gem 'mspec'
41
+
42
+ FileUtils.mkdir_p 'build'
43
+ puts " * build/specs.js"
44
+
45
+ specs = uglify(env['ospec/main'].to_s)
46
+ File.open('build/specs.js', 'w+') { |o| o << specs }
47
+ end
48
+
49
+ # Only if OPAL_UGLIFY is set
50
+ def uglify(str)
51
+ if ENV['OPAL_UGLIFY']
52
+ require 'uglifier'
53
+ puts " * uglifying"
54
+ Uglifier.compile(str)
55
+ else
56
+ str
57
+ end
58
+ end
35
59
  end
36
60
 
37
61
  desc "Run tests through mspec"
@@ -55,7 +79,7 @@ task :build_specs do
55
79
  puts " * build/specs.js"
56
80
  specs = env['ospec/main'].to_s
57
81
 
58
- # puts " * build/specs.min.js"
82
+ puts " * build/specs.min.js"
59
83
  # min = Uglifier.compile(specs)
60
84
 
61
85
  File.open('build/specs.js', 'w+') { |o| o << specs }
data/config.ru CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'bundler'
2
2
  Bundler.require
3
+ require 'opal-sprockets'
3
4
 
4
5
  ENV['OPAL_SPEC'] = ["#{Dir.pwd}/spec/"].join(',')
5
6
 
@@ -11,4 +12,5 @@ run Opal::Server.new { |s|
11
12
 
12
13
  s.debug = false
13
14
  s.main = 'ospec/main'
15
+ s.index_path = 'spec/index.html'
14
16
  }
data/lib/opal/cli.rb CHANGED
@@ -1,10 +1,22 @@
1
1
  require 'opal'
2
2
 
3
+ begin
4
+ require 'opal-sprockets'
5
+ rescue LoadError
6
+ $stderr.puts 'Opal executable requires opal-sprockets to be fully functional.'
7
+ $stderr.puts 'You can install it with rubygems:'
8
+ $stderr.puts ''
9
+ $stderr.puts ' gem install opal-sprockets'
10
+ exit -1
11
+ end
12
+
3
13
  module Opal
4
14
  class CLI
5
15
  attr_reader :options, :filename
6
16
 
7
17
  def initialize _filename, options
18
+ require 'rack'
19
+
8
20
  @options = options
9
21
  @filename = _filename
10
22
 
data/lib/opal/parser.rb CHANGED
@@ -198,7 +198,7 @@ module Opal
198
198
  @scope.add_temp "__scope = __opal"
199
199
  @scope.add_temp "$mm = __opal.mm"
200
200
  @scope.add_temp "nil = __opal.nil"
201
- @scope.add_temp "def = #{current_self}.constructor.prototype" if @scope.defines_defn
201
+ @scope.add_temp "def = __opal.Object.prototype" if @scope.defines_defn
202
202
  @helpers.keys.each { |h| @scope.add_temp "__#{h} = __opal.#{h}" }
203
203
 
204
204
  vars = [fragment(INDENT, sexp), @scope.to_vars, fragment("\n", sexp)]
@@ -1210,7 +1210,7 @@ module Opal
1210
1210
  elsif @scope.type == :iter
1211
1211
  [fragment("def#{jsid} = ", sexp), result]
1212
1212
  elsif @scope.type == :top
1213
- [fragment("#{ current_self }#{ jsid } = ", sexp), *result]
1213
+ [fragment("def#{ jsid } = ", sexp), *result]
1214
1214
  else
1215
1215
  [fragment("def#{jsid} = ", sexp), result]
1216
1216
  end
@@ -1804,7 +1804,7 @@ module Opal
1804
1804
  with_temp do |tmp|
1805
1805
  lhs = process lhs, :expr
1806
1806
  rhs = process rhs, :expr
1807
- [fragment("(#{tmp} = ", sexp), lhs, fragment(", #{tmp} !== false && #{tmp} !== nil ? #{tmp} : ", sexp), rhs, fragment(")", sexp)]
1807
+ [fragment("(((#{tmp} = ", sexp), lhs, fragment(") !== false && #{tmp} !== nil) ? #{tmp} : ", sexp), rhs, fragment(")", sexp)]
1808
1808
  end
1809
1809
  end
1810
1810
 
data/lib/opal/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Opal
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
data/opal.gemspec CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.description = 'Ruby runtime and core library for javascript.'
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
14
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
16
  s.require_paths = ['lib']
16
17
 
data/opal/opal.rb CHANGED
@@ -47,10 +47,10 @@ RUBY_ENGINE = 'opal'
47
47
  RUBY_VERSION = '1.9.3'
48
48
  RUBY_RELEASE_DATE = '2013-05-02'
49
49
 
50
- def to_s
50
+ def self.to_s
51
51
  'main'
52
52
  end
53
53
 
54
- def include(mod)
54
+ def self.include(mod)
55
55
  Object.include mod
56
56
  end
data/opal/opal/array.rb CHANGED
@@ -8,28 +8,71 @@ class Array
8
8
  objects
9
9
  end
10
10
 
11
+ def initialize(*args)
12
+ self.class.new(*args)
13
+ end
14
+
11
15
  def self.new(size = undefined, obj = nil, &block)
12
16
  %x{
13
- var arr = [];
17
+
18
+ if (arguments.length > 2)
19
+ #{raise ArgumentError.new("wrong number of arguments. Array#new")};
20
+
21
+ if (arguments.length == 0)
22
+ return [];
23
+
24
+ var size,
25
+ obj = arguments[1],
26
+ arr = [];
14
27
 
15
- if (size && size._isArray) {
16
- for (var i = 0; i < size.length; i++) {
17
- arr[i] = size[i];
28
+ if (!obj) {
29
+ if (size['$to_ary'] && typeof(size['$to_ary']) == 'function'){
30
+ if (size['$is_a?'](Array))
31
+ return size;
32
+ return size['$to_ary']();
18
33
  }
19
34
  }
35
+
36
+ if (typeof(arguments[0]) == 'number')
37
+ size = arguments[0];
20
38
  else {
21
- if (block === nil) {
22
- for (var i = 0; i < size; i++) {
23
- arr[i] = obj;
39
+ if (arguments[0]['$to_int'] && typeof(arguments[0]['$to_int']) == 'function' ) {
40
+ size = arguments[0]['$to_int']();
41
+ if (typeof(size) == 'number') {
42
+ if (size % 1 !== 0) {
43
+ #{raise TypeError.new("can't convert to Integer. Array#new")};
44
+ }
45
+ } else {
46
+ #{raise TypeError.new("can't convert to Integer. Array#new")};
24
47
  }
48
+ } else {
49
+ #{raise TypeError.new("can't convert to Integer. Array#new")};
25
50
  }
26
- else {
27
- for (var i = 0; i < size; i++) {
28
- arr[i] = block(i);
51
+ }
52
+
53
+ if (size < 0) {
54
+ #{raise ArgumentError.new("negative array size")};
55
+ }
56
+
57
+ if (obj == undefined) {
58
+ obj = nil;
59
+ }
60
+
61
+
62
+ if (block === nil)
63
+ for (var i = 0; i < size; i++) {
64
+ arr.push(obj);
65
+ }
66
+ else {
67
+ for (var i = 0, value; i < size; i++) {
68
+ value = block(i);
69
+ if (value === __breaker) {
70
+ return __breaker.$v;
29
71
  }
72
+ arr[i] = block(i);
30
73
  }
31
- }
32
-
74
+ }
75
+
33
76
  return arr;
34
77
  }
35
78
  end
data/opal/opal/boolean.rb CHANGED
@@ -32,7 +32,7 @@ class Boolean
32
32
  end
33
33
 
34
34
  def to_n
35
- self
35
+ `#{self}.valueOf()`
36
36
  end
37
37
  end
38
38
 
data/opal/opal/kernel.rb CHANGED
@@ -378,14 +378,26 @@ module Kernel
378
378
  end
379
379
 
380
380
  def rand(max = undefined)
381
- `max == null ? Math.random() : Math.floor(Math.random() * max)`
381
+ %x{
382
+ if(!max) {
383
+ return Math.random();
384
+ } else {
385
+ if (max._isRange) {
386
+ var arr = max.$to_a();
387
+ return arr[#{rand(`arr.length`)}];
388
+ } else {
389
+ return Math.floor(Math.random() * Math.abs(parseInt(max)));
390
+ }
391
+ }
392
+ }
382
393
  end
383
394
 
384
395
  def respond_to?(name)
385
396
  `!!#{self}['$' + name]`
386
397
  end
387
398
 
388
- alias send __send__
399
+ alias send __send__
400
+ alias public_send __send__
389
401
 
390
402
  def singleton_class
391
403
  %x{
data/opal/opal/numeric.rb CHANGED
@@ -190,7 +190,7 @@ class Numeric
190
190
  end
191
191
 
192
192
  def to_n
193
- self
193
+ `#{self}.valueOf()`
194
194
  end
195
195
 
196
196
  def upto(finish, &block)
data/opal/opal/regexp.rb CHANGED
@@ -77,6 +77,6 @@ class Regexp
77
77
  alias to_s source
78
78
 
79
79
  def to_n
80
- self
80
+ `#{self}.valueOf()`
81
81
  end
82
82
  end
data/opal/opal/string.rb CHANGED
@@ -1062,7 +1062,7 @@ class MatchData < Array
1062
1062
  end
1063
1063
 
1064
1064
  def to_n
1065
- self
1065
+ `#{self}.valueOf()`
1066
1066
  end
1067
1067
 
1068
1068
  def values_at(*indexes)
data/spec/index.html ADDED
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Opal Specs</title>
5
+ </head>
6
+ <body>
7
+ <script src="/build/specs.js"></script>
8
+ </body>
9
+ </html>
@@ -7,6 +7,15 @@ describe "Kernel.rand" do
7
7
  rand(77).should be_kind_of(Integer)
8
8
  end
9
9
 
10
+ it "return member from range" do
11
+ r = (1..10)
12
+ r.to_a.include?(rand(r)).should == true
13
+ end
14
+
15
+ it "should convert negative number and convert to integer" do
16
+ rand(-0.1).should == 0
17
+ end
18
+
10
19
  it "returns a numeric in opal" do
11
20
  rand.should be_kind_of(Numeric)
12
21
  rand(77).should be_kind_of(Numeric)
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ $OPAL_TOP_LEVEL_OBJECT = self
4
+
5
+ def self.some_main_method
6
+ 3.142
7
+ end
8
+
9
+ def some_top_level_method_is_defined
10
+ 42
11
+ end
12
+
13
+ describe "Defining normal methods at the top level" do
14
+ it "should define them on Object, not main" do
15
+ Object.new.some_top_level_method_is_defined.should == 42
16
+ end
17
+ end
18
+
19
+ describe "Defining singleton methods on main" do
20
+ it "should define it on main directly" do
21
+ $OPAL_TOP_LEVEL_OBJECT.some_main_method.should == 3.142
22
+ end
23
+
24
+ it "should not define the method for all Objects" do
25
+ lambda { Object.new.some_main_method }.should raise_error(NoMethodError)
26
+ end
27
+ end
@@ -10,9 +10,9 @@ describe "Array.new" do
10
10
  ArraySpecs::MyArray.new(1, 2).should be_an_instance_of(ArraySpecs::MyArray)
11
11
  end
12
12
 
13
- pending "raise an ArgumentError if passed 3 or more arguments" do
13
+ it "raise an ArgumentError if passed 3 or more arguments" do
14
14
  lambda do
15
- [1, 2].send :initialize, 1, 'x', true
15
+ Array.new(1, 'x', true)
16
16
  end.should raise_error(ArgumentError)
17
17
  lambda do
18
18
  [1, 2].send(:initialize, 1, 'x', true) {}
@@ -21,7 +21,7 @@ describe "Array.new" do
21
21
  end
22
22
 
23
23
  describe "Array.new with no arguments" do
24
- pending "returns an empty array" do
24
+ it "returns an empty array" do
25
25
  Array.new.should be_empty
26
26
  end
27
27
 
@@ -40,20 +40,19 @@ describe "Array.new with (array)" do
40
40
  lambda{ Array.new([1, 2]) { raise } }.should_not raise_error
41
41
  end
42
42
 
43
- pending "calls #to_ary to convert the value to an array" do
43
+ it "calls #to_ary to convert the value to an array" do
44
44
  a = mock("array")
45
- a.should_receive(:to_ary).and_return([1, 2])
46
- a.should_not_receive(:to_int)
45
+ def a.to_ary; [1,2]; end
47
46
  Array.new(a).should == [1, 2]
48
47
  end
49
48
 
50
- pending "does not call #to_ary on instances of Array or subclasses of Array" do
49
+ it "does not call #to_ary on instances of Array or subclasses of Array" do
51
50
  a = [1, 2]
52
- a.should_not_receive(:to_ary)
53
- Array.new(a)
51
+ def a.to_ary; [1,2,3]; end
52
+ Array.new(a).should == [1,2]
54
53
  end
55
54
 
56
- pending "raises a TypeError if an Array type argument and a default object" do
55
+ it "raises a TypeError if an Array type argument and a default object" do
57
56
  lambda { Array.new([1, 2], 1) }.should raise_error(TypeError)
58
57
  end
59
58
  end
@@ -67,11 +66,11 @@ describe "Array.new with (size, object=nil)" do
67
66
  a[1].should equal(obj)
68
67
  end
69
68
 
70
- it "returns an array of size filled with nil when object is omitted" do
69
+ it "returns an array of size filled with nil when object is omitted" do
71
70
  Array.new(3).should == [nil, nil, nil]
72
71
  end
73
72
 
74
- pending "raises an ArgumentError if size is negative" do
73
+ it "raises an ArgumentError if size is negative" do
75
74
  lambda { Array.new(-1, :a) }.should raise_error(ArgumentError)
76
75
  lambda { Array.new(-1) }.should raise_error(ArgumentError)
77
76
  end
@@ -92,22 +91,30 @@ describe "Array.new with (size, object=nil)" do
92
91
  end
93
92
  end
94
93
 
95
- pending "calls #to_int to convert the size argument to an Integer when object is given" do
94
+ it "calls #to_int to convert the size argument to an Integer when object is given" do
96
95
  obj = mock('1')
97
- obj.should_receive(:to_int).and_return(1)
96
+ def obj.to_int; 1; end
98
97
  Array.new(obj, :a).should == [:a]
99
98
  end
100
99
 
101
- pending "calls #to_int to convert the size argument to an Integer when object is not given" do
100
+ it "calls #to_int to convert the size argument to an Integer when object is not given" do
102
101
  obj = mock('1')
103
- obj.should_receive(:to_int).and_return(1)
102
+ def obj.to_int; 1; end
104
103
  Array.new(obj).should == [nil]
105
104
  end
106
105
 
107
- pending "raises a TypeError if the size argument is not an Integer type" do
108
- obj = mock('nonnumeric')
109
- obj.stub!(:to_ary).and_return([1, 2])
110
- lambda{ Array.new(obj, :a) }.should raise_error(TypeError)
106
+ it "raises a TypeError if the size argument is not an Integer type" do
107
+ obj1 = mock('nonnumeric')
108
+ def obj1.to_int; [1,2]; end
109
+ lambda{ Array.new(obj1, :a) }.should raise_error(TypeError)
110
+
111
+ obj2 = mock('nonnumeric')
112
+ def obj2.to_int; "123"; end
113
+ lambda{ Array.new(obj2, :a) }.should raise_error(TypeError)
114
+
115
+ obj3 = mock('nonnumeric')
116
+ def obj3.to_int; 1.2; end
117
+ lambda{ Array.new(obj3, :a) }.should raise_error(TypeError)
111
118
  end
112
119
 
113
120
  it "yields the index of the element and sets the element to the value of the block" do
@@ -118,12 +125,15 @@ describe "Array.new with (size, object=nil)" do
118
125
  Array.new(3, :obj) { |i| i.to_s }.should == ['0', '1', '2']
119
126
  end
120
127
 
121
- pending "returns the value passed to break" do
122
- a = Array.new(3) do |i|
128
+ it "returns the value passed to break" do
129
+ Array.new(3) do |i|
123
130
  break if i == 2
124
131
  i.to_s
125
- end
132
+ end.should == nil
126
133
 
127
- a.should == nil
134
+ Array.new(3) do |i|
135
+ break 3 if i == 2
136
+ i.to_s
137
+ end.should == 3
128
138
  end
129
139
  end
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
5
- prerelease:
4
+ version: 0.4.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Adam Beynon
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-16 00:00:00.000000000 Z
11
+ date: 2013-07-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: source_map
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: mspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - '='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - '='
44
39
  - !ruby/object:Gem::Version
@@ -46,55 +41,48 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: uglifier
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: racc
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: opal-sprockets
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,14 +90,14 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
109
96
  version: 0.1.0
110
97
  description: Ruby runtime and core library for javascript.
111
98
  email: adam.beynon@gmail.com
112
- executables: []
99
+ executables:
100
+ - opal
113
101
  extensions: []
114
102
  extra_rdoc_files: []
115
103
  files:
@@ -190,6 +178,7 @@ files:
190
178
  - opal/source_map/vlq.rb
191
179
  - opal/strscan.rb
192
180
  - opal/yaml.rb
181
+ - spec/index.html
193
182
  - spec/mspec/guards/block_device.rb
194
183
  - spec/mspec/guards/endian.rb
195
184
  - spec/mspec/helpers/environment.rb
@@ -243,10 +232,10 @@ files:
243
232
  - spec/opal/proc/proc_tricks_spec.rb
244
233
  - spec/opal/runtime/block_send_spec.rb
245
234
  - spec/opal/runtime/eval_spec.rb
235
+ - spec/opal/runtime/main_methods_spec.rb
246
236
  - spec/opal/runtime/send_spec.rb
247
237
  - spec/opal/runtime2/call_spec.rb
248
238
  - spec/opal/runtime2/class_hierarchy_spec.rb
249
- - spec/opal/runtime2/def_spec.rb
250
239
  - spec/opal/runtime2/defined_spec.rb
251
240
  - spec/opal/runtime2/super_spec.rb
252
241
  - spec/opal/source_map_spec.rb
@@ -715,29 +704,29 @@ files:
715
704
  - spec/spec_helper.rb
716
705
  homepage: http://opalrb.org
717
706
  licenses: []
707
+ metadata: {}
718
708
  post_install_message:
719
709
  rdoc_options: []
720
710
  require_paths:
721
711
  - lib
722
712
  required_ruby_version: !ruby/object:Gem::Requirement
723
- none: false
724
713
  requirements:
725
- - - ! '>='
714
+ - - '>='
726
715
  - !ruby/object:Gem::Version
727
716
  version: '0'
728
717
  required_rubygems_version: !ruby/object:Gem::Requirement
729
- none: false
730
718
  requirements:
731
- - - ! '>='
719
+ - - '>='
732
720
  - !ruby/object:Gem::Version
733
721
  version: '0'
734
722
  requirements: []
735
723
  rubyforge_project:
736
- rubygems_version: 1.8.23
724
+ rubygems_version: 2.0.3
737
725
  signing_key:
738
- specification_version: 3
726
+ specification_version: 4
739
727
  summary: Ruby runtime and core library for javascript
740
728
  test_files:
729
+ - spec/index.html
741
730
  - spec/mspec/guards/block_device.rb
742
731
  - spec/mspec/guards/endian.rb
743
732
  - spec/mspec/helpers/environment.rb
@@ -791,10 +780,10 @@ test_files:
791
780
  - spec/opal/proc/proc_tricks_spec.rb
792
781
  - spec/opal/runtime/block_send_spec.rb
793
782
  - spec/opal/runtime/eval_spec.rb
783
+ - spec/opal/runtime/main_methods_spec.rb
794
784
  - spec/opal/runtime/send_spec.rb
795
785
  - spec/opal/runtime2/call_spec.rb
796
786
  - spec/opal/runtime2/class_hierarchy_spec.rb
797
- - spec/opal/runtime2/def_spec.rb
798
787
  - spec/opal/runtime2/defined_spec.rb
799
788
  - spec/opal/runtime2/super_spec.rb
800
789
  - spec/opal/source_map_spec.rb
@@ -1,23 +0,0 @@
1
- def def_test_bar
2
- 42
3
- end
4
-
5
- def self.def_test_foo
6
- "bar"
7
- end
8
-
9
- $top_level_object = self
10
-
11
- describe "Defining top level methods" do
12
- it "should work with def self.x" do
13
- $top_level_object.def_test_foo.should == "bar"
14
- end
15
-
16
- it "should work with def x" do
17
- $top_level_object.def_test_bar.should == 42
18
- end
19
-
20
- it "defines methods on singleton class" do
21
- Object.new.respond_to?(:def_test_bar).should == false
22
- end
23
- end