opal 0.3.35 → 0.3.36
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.
- data/Gemfile +5 -12
- data/README.md +4 -6
- data/Rakefile +5 -44
- data/config.ru +26 -0
- data/lib/assets/javascripts/opal/core.rb +18 -19
- data/lib/opal.rb +1 -8
- data/lib/opal/environment.rb +12 -0
- data/lib/opal/processor.rb +6 -2
- data/lib/opal/version.rb +1 -1
- data/spec/autorun.rb +3 -0
- data/spec/core/array/shuffle_spec.rb +3 -3
- data/spec/spec_helper.rb +1 -0
- metadata +14 -15
- data/spec/core.html +0 -10
- data/spec/core_spec.rb +0 -2
- data/spec/grammar.html +0 -11
- data/spec/grammar_spec.rb +0 -1
- data/spec/index.html +0 -12
data/Gemfile
CHANGED
@@ -1,19 +1,12 @@
|
|
1
1
|
source :rubygems
|
2
2
|
gemspec
|
3
3
|
|
4
|
-
gem
|
4
|
+
gem 'rake'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
gem "sprockets"
|
9
|
-
end
|
6
|
+
gem 'sprockets'
|
7
|
+
gem 'opal-spec', '~> 0.2.8'
|
10
8
|
|
11
9
|
# for rebuilding grammar.rb from grammar.y
|
12
10
|
group :grammar do
|
13
|
-
gem
|
14
|
-
end
|
15
|
-
|
16
|
-
# running tests on command line
|
17
|
-
group :testing do
|
18
|
-
gem 'opal-spec'
|
19
|
-
end
|
11
|
+
gem 'racc'
|
12
|
+
end
|
data/README.md
CHANGED
@@ -14,16 +14,14 @@ See the website, [http://opalrb.org](http://opalrb.org).
|
|
14
14
|
|
15
15
|
## Running tests
|
16
16
|
|
17
|
-
|
17
|
+
Tests can be run with phantomjs using:
|
18
18
|
|
19
19
|
```
|
20
|
-
rake
|
20
|
+
$ rake
|
21
21
|
```
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
Alternatively, after building, you can open `spec/index.html` in any
|
26
|
-
web browser.
|
23
|
+
Alternatively, you can just load up a rack instance using `rackup`, and
|
24
|
+
visit `http://localhost:9292/` in any web browser.
|
27
25
|
|
28
26
|
## Code Overview
|
29
27
|
|
data/Rakefile
CHANGED
@@ -1,54 +1,15 @@
|
|
1
|
-
require 'bundler
|
2
|
-
require
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.require
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
File.open('build/opal.js', 'w+') { |o| o.puts Opal.process('opal') }
|
7
|
-
end
|
8
|
-
|
9
|
-
desc "Build opal-parser.js into ./build"
|
10
|
-
task :parser => [:dir] do
|
11
|
-
File.open('build/opal-parser.js', 'w+') { |o| o.puts Opal.process('opal-parser') }
|
12
|
-
end
|
13
|
-
|
14
|
-
desc "Build specs ready to run"
|
15
|
-
task :build_specs => [:dir] do
|
16
|
-
Opal.append_path File.join(File.dirname(__FILE__), 'spec')
|
17
|
-
|
18
|
-
File.open('build/core_spec.js', 'w+') { |o| o.puts Opal.process('core_spec') }
|
19
|
-
File.open('build/grammar_spec.js', 'w+') { |o| o.puts Opal.process('grammar_spec') }
|
20
|
-
File.open('build/specs.js', 'w+') { |o| o.puts Opal.process('spec_helper') }
|
21
|
-
end
|
22
|
-
|
23
|
-
task :default => [:build_specs, :parser, :test]
|
24
|
-
|
25
|
-
desc "Run opal specs through phantomjs"
|
26
|
-
task :test do
|
27
|
-
OpalSpec.runner
|
28
|
-
end
|
29
|
-
|
30
|
-
task :dir do
|
31
|
-
require 'fileutils'
|
32
|
-
FileUtils.mkdir_p 'build'
|
33
|
-
end
|
34
|
-
|
35
|
-
desc "opal.min.js and opal-parser.min.js"
|
36
|
-
task :min do
|
37
|
-
%w[opal opal-parser].each do |file|
|
38
|
-
puts " * #{file}.min.js"
|
39
|
-
File.open("build/#{file}.min.js", "w+") do |o|
|
40
|
-
o.puts uglify(File.read "build/#{file}.js")
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
4
|
+
require 'opal/spec/rake_task'
|
5
|
+
Opal::Spec::RakeTask.new(:default)
|
44
6
|
|
45
7
|
desc "Check file sizes for opal.js runtime"
|
46
8
|
task :sizes do
|
47
|
-
o =
|
9
|
+
o = Opal::Environment.new['opal'].to_s
|
48
10
|
m = uglify o
|
49
11
|
g = gzip m
|
50
12
|
|
51
|
-
puts "opal.js:"
|
52
13
|
puts "development: #{o.size}, minified: #{m.size}, gzipped: #{g.size}"
|
53
14
|
end
|
54
15
|
|
data/config.ru
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.require
|
3
|
+
|
4
|
+
html = <<HTML
|
5
|
+
<!DOCTYPE html>
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>Opal corelib and runtime specs</title>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<script type="text/javascript" src="/assets/autorun.js"></script>
|
12
|
+
</body>
|
13
|
+
</html>
|
14
|
+
HTML
|
15
|
+
|
16
|
+
map '/assets' do
|
17
|
+
env = Opal::Environment.new
|
18
|
+
env.append_path 'spec'
|
19
|
+
run env
|
20
|
+
end
|
21
|
+
|
22
|
+
map '/' do
|
23
|
+
run lambda { |env|
|
24
|
+
[200, {'Content-Type' => 'text/html'}, [html]]
|
25
|
+
}
|
26
|
+
end
|
@@ -1,22 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
#= require opal/json
|
1
|
+
require 'opal/class'
|
2
|
+
require 'opal/basic_object'
|
3
|
+
require 'opal/kernel'
|
4
|
+
require 'opal/nil_class'
|
5
|
+
require 'opal/boolean'
|
6
|
+
require 'opal/error'
|
7
|
+
require 'opal/regexp'
|
8
|
+
require 'opal/comparable'
|
9
|
+
require 'opal/enumerable'
|
10
|
+
require 'opal/array'
|
11
|
+
require 'opal/hash'
|
12
|
+
require 'opal/string'
|
13
|
+
require 'opal/numeric'
|
14
|
+
require 'opal/proc'
|
15
|
+
require 'opal/range'
|
16
|
+
require 'opal/time'
|
17
|
+
require 'opal/date'
|
18
|
+
require 'opal/json'
|
20
19
|
|
21
20
|
# regexp matches
|
22
21
|
$~ = nil
|
data/lib/opal.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'opal/parser'
|
2
2
|
require 'opal/processor'
|
3
|
+
require 'opal/environment'
|
3
4
|
require 'opal/version'
|
4
5
|
|
5
6
|
# Opal is a ruby to javascript compiler, with a runtime for running
|
@@ -30,12 +31,4 @@ module Opal
|
|
30
31
|
def self.paths
|
31
32
|
@paths ||= [Opal.core_dir]
|
32
33
|
end
|
33
|
-
|
34
|
-
# Build ruby/opal file at fname
|
35
|
-
def self.process(fname)
|
36
|
-
env = Sprockets::Environment.new
|
37
|
-
paths.each { |p| env.append_path p }
|
38
|
-
|
39
|
-
env[fname].to_s
|
40
|
-
end
|
41
34
|
end
|
data/lib/opal/processor.rb
CHANGED
@@ -17,8 +17,12 @@ module Opal
|
|
17
17
|
# ...
|
18
18
|
end
|
19
19
|
|
20
|
-
def evaluate(
|
21
|
-
Opal.
|
20
|
+
def evaluate(context, locals, &block)
|
21
|
+
parser = Opal::Parser.new
|
22
|
+
result = parser.parse data
|
23
|
+
|
24
|
+
parser.requires.each { |r| context.require_asset r }
|
25
|
+
result
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
data/lib/opal/version.rb
CHANGED
data/spec/autorun.rb
ADDED
@@ -1,11 +1,11 @@
|
|
1
1
|
describe "Array#shuffle" do
|
2
2
|
it "returns an array mixed up" do
|
3
3
|
ary = [1, 2, 3, 4, 5]
|
4
|
-
[1, 2, 3, 4, 5].shuffle.
|
4
|
+
[1, 2, 3, 4, 5].shuffle.size.should eq(ary.size)
|
5
5
|
end
|
6
6
|
|
7
7
|
it "returns an array mixed up with UTF-8 characters" do
|
8
8
|
ary = ["á", "é", "à", "ñÑ", "¥ØŁØ"]
|
9
|
-
["á", "é", "à", "ñÑ", "¥ØŁØ"].shuffle.
|
9
|
+
["á", "é", "à", "ñÑ", "¥ØŁØ"].shuffle.size.should eq(ary.size)
|
10
10
|
end
|
11
|
-
end
|
11
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.36
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,12 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
description: Ruby runtime and core library for javascript.
|
26
31
|
email: adam.beynon@gmail.com
|
27
32
|
executables:
|
@@ -37,6 +42,7 @@ files:
|
|
37
42
|
- README.md
|
38
43
|
- Rakefile
|
39
44
|
- bin/opal
|
45
|
+
- config.ru
|
40
46
|
- lib/assets/javascripts/opal-parser.js.erb
|
41
47
|
- lib/assets/javascripts/opal.js.erb
|
42
48
|
- lib/assets/javascripts/opal/array.rb
|
@@ -61,6 +67,7 @@ files:
|
|
61
67
|
- lib/assets/javascripts/opal/strscan.rb
|
62
68
|
- lib/assets/javascripts/opal/time.rb
|
63
69
|
- lib/opal.rb
|
70
|
+
- lib/opal/environment.rb
|
64
71
|
- lib/opal/grammar.rb
|
65
72
|
- lib/opal/grammar.y
|
66
73
|
- lib/opal/lexer.rb
|
@@ -69,7 +76,7 @@ files:
|
|
69
76
|
- lib/opal/scope.rb
|
70
77
|
- lib/opal/version.rb
|
71
78
|
- opal.gemspec
|
72
|
-
- spec/
|
79
|
+
- spec/autorun.rb
|
73
80
|
- spec/core/array/allocate_spec.rb
|
74
81
|
- spec/core/array/append_spec.rb
|
75
82
|
- spec/core/array/assoc_spec.rb
|
@@ -357,8 +364,6 @@ files:
|
|
357
364
|
- spec/core/time/month_spec.rb
|
358
365
|
- spec/core/time/now_spec.rb
|
359
366
|
- spec/core/time/saturday_spec.rb
|
360
|
-
- spec/core_spec.rb
|
361
|
-
- spec/grammar.html
|
362
367
|
- spec/grammar/alias_spec.rb
|
363
368
|
- spec/grammar/and_spec.rb
|
364
369
|
- spec/grammar/array_spec.rb
|
@@ -404,8 +409,6 @@ files:
|
|
404
409
|
- spec/grammar/while_spec.rb
|
405
410
|
- spec/grammar/xstr_spec.rb
|
406
411
|
- spec/grammar/yield_spec.rb
|
407
|
-
- spec/grammar_spec.rb
|
408
|
-
- spec/index.html
|
409
412
|
- spec/language/alias_spec.rb
|
410
413
|
- spec/language/and_spec.rb
|
411
414
|
- spec/language/array_spec.rb
|
@@ -458,12 +461,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
458
461
|
version: '0'
|
459
462
|
requirements: []
|
460
463
|
rubyforge_project:
|
461
|
-
rubygems_version: 1.8.
|
464
|
+
rubygems_version: 1.8.23
|
462
465
|
signing_key:
|
463
466
|
specification_version: 3
|
464
467
|
summary: Ruby runtime and core library for javascript
|
465
468
|
test_files:
|
466
|
-
- spec/
|
469
|
+
- spec/autorun.rb
|
467
470
|
- spec/core/array/allocate_spec.rb
|
468
471
|
- spec/core/array/append_spec.rb
|
469
472
|
- spec/core/array/assoc_spec.rb
|
@@ -751,8 +754,6 @@ test_files:
|
|
751
754
|
- spec/core/time/month_spec.rb
|
752
755
|
- spec/core/time/now_spec.rb
|
753
756
|
- spec/core/time/saturday_spec.rb
|
754
|
-
- spec/core_spec.rb
|
755
|
-
- spec/grammar.html
|
756
757
|
- spec/grammar/alias_spec.rb
|
757
758
|
- spec/grammar/and_spec.rb
|
758
759
|
- spec/grammar/array_spec.rb
|
@@ -798,8 +799,6 @@ test_files:
|
|
798
799
|
- spec/grammar/while_spec.rb
|
799
800
|
- spec/grammar/xstr_spec.rb
|
800
801
|
- spec/grammar/yield_spec.rb
|
801
|
-
- spec/grammar_spec.rb
|
802
|
-
- spec/index.html
|
803
802
|
- spec/language/alias_spec.rb
|
804
803
|
- spec/language/and_spec.rb
|
805
804
|
- spec/language/array_spec.rb
|
data/spec/core.html
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Opal corelib and runtime specs (core)</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<script type="text/javascript" src="../build/specs.js"></script>
|
8
|
-
<script type="text/javascript" src="../build/core_spec.js"></script>
|
9
|
-
</body>
|
10
|
-
</html>
|
data/spec/core_spec.rb
DELETED
data/spec/grammar.html
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Opal corelib and runtime specs (grammar)</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<script type="text/javascript" src="../build/specs.js"></script>
|
8
|
-
<script type="text/javascript" src="../build/opal-parser.js"></script>
|
9
|
-
<script type="text/javascript" src="../build/grammar_spec.js"></script>
|
10
|
-
</body>
|
11
|
-
</html>
|
data/spec/grammar_spec.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
#= require_tree ./grammar
|
data/spec/index.html
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Opal corelib and runtime specs</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<script type="text/javascript" src="../build/specs.js"></script>
|
8
|
-
<script type="text/javascript" src="../build/opal-parser.js"></script>
|
9
|
-
<script type="text/javascript" src="../build/core_spec.js"></script>
|
10
|
-
<script type="text/javascript" src="../build/grammar_spec.js"></script>
|
11
|
-
</body>
|
12
|
-
</html>
|