opal 0.3.16 → 0.3.17
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +8 -7
- data/README.md +21 -13
- data/Rakefile +64 -78
- data/bin/opal +18 -29
- data/core/alpha.rb +2 -9
- data/core/array.rb +106 -50
- data/core/basic_object.rb +10 -8
- data/core/boolean.rb +2 -0
- data/core/class.rb +25 -13
- data/core/comparable.rb +6 -6
- data/core/enumerable.rb +90 -94
- data/core/enumerator.rb +3 -3
- data/core/hash.rb +86 -46
- data/core/kernel.rb +55 -39
- data/core/load_order +2 -5
- data/core/match_data.rb +1 -1
- data/core/module.rb +45 -20
- data/core/nil_class.rb +6 -2
- data/core/numeric.rb +20 -10
- data/core/proc.rb +2 -2
- data/core/range.rb +72 -13
- data/core/regexp.rb +5 -3
- data/core/runtime.js +228 -287
- data/core/string.rb +345 -37
- data/core/top_self.rb +1 -1
- data/lib/opal.rb +13 -91
- data/lib/opal/builder.rb +47 -120
- data/lib/opal/builder_task.rb +74 -0
- data/lib/opal/{parser/grammar.rb → grammar.rb} +1094 -1083
- data/lib/opal/{parser/grammar.y → grammar.y} +7 -0
- data/lib/opal/{parser/lexer.rb → lexer.rb} +32 -11
- data/lib/opal/{parser/parser.rb → parser.rb} +232 -238
- data/lib/opal/{parser/scope.rb → scope.rb} +72 -9
- data/lib/opal/version.rb +2 -3
- data/opal.gemspec +1 -2
- data/{core_spec → spec}/core/array/allocate_spec.rb +1 -3
- data/{core_spec → spec}/core/array/append_spec.rb +1 -4
- data/{core_spec → spec}/core/array/assoc_spec.rb +1 -4
- data/{core_spec → spec}/core/array/at_spec.rb +1 -3
- data/{core_spec → spec}/core/array/clear_spec.rb +1 -3
- data/spec/core/array/clone_spec.rb +15 -0
- data/{core_spec/core/array/shared/collect.rb → spec/core/array/collect_spec.rb} +1 -1
- data/{core_spec → spec}/core/array/compact_spec.rb +1 -3
- data/{core_spec → spec}/core/array/concat_spec.rb +1 -3
- data/{core_spec → spec}/core/array/constructor_spec.rb +9 -3
- data/{core_spec → spec}/core/array/count_spec.rb +1 -3
- data/{core_spec → spec}/core/array/delete_at_spec.rb +1 -4
- data/{core_spec → spec}/core/array/delete_if_spec.rb +1 -4
- data/{core_spec → spec}/core/array/delete_spec.rb +1 -4
- data/{core_spec → spec}/core/array/each_index_spec.rb +1 -4
- data/{core_spec → spec}/core/array/each_spec.rb +1 -4
- data/{core_spec → spec}/core/array/element_reference_spec.rb +74 -4
- data/{core_spec → spec}/core/array/empty_spec.rb +1 -4
- data/{core_spec/core/array/shared/eql.rb → spec/core/array/eql_spec.rb} +1 -1
- data/{core_spec → spec}/core/array/fetch_spec.rb +1 -4
- data/{core_spec → spec}/core/array/first_spec.rb +1 -3
- data/{core_spec → spec}/core/array/flatten_spec.rb +1 -3
- data/{core_spec → spec}/core/array/include_spec.rb +1 -3
- data/{core_spec → spec}/core/array/insert_spec.rb +1 -4
- data/{core_spec → spec}/core/array/last_spec.rb +1 -4
- data/{core_spec/core/array/shared/length.rb → spec/core/array/length_spec.rb} +1 -1
- data/spec/core/array/map_spec.rb +53 -0
- data/{core_spec → spec}/core/array/plus_spec.rb +1 -4
- data/{core_spec → spec}/core/array/pop_spec.rb +1 -4
- data/{core_spec → spec}/core/array/push_spec.rb +1 -4
- data/{core_spec → spec}/core/array/rassoc_spec.rb +1 -4
- data/{core_spec → spec}/core/array/reject_spec.rb +1 -4
- data/{core_spec/core/array/shared/replace.rb → spec/core/array/replace_spec.rb} +1 -1
- data/{core_spec → spec}/core/array/reverse_each_spec.rb +1 -4
- data/{core_spec → spec}/core/array/reverse_spec.rb +1 -4
- data/spec/core/array/size_spec.rb +6 -0
- data/spec/core/array/to_ary_spec.rb +6 -0
- data/spec/core/array/uniq_spec.rb +22 -0
- data/spec/core/array/zip_spec.rb +20 -0
- data/{core_spec → spec}/core/class/new_spec.rb +1 -4
- data/{core_spec → spec}/core/enumerable/all_spec.rb +1 -4
- data/{core_spec → spec}/core/enumerable/any_spec.rb +1 -4
- data/{core_spec/core/enumerable/shared/collect.rb → spec/core/enumerable/collect_spec.rb} +1 -1
- data/{core_spec → spec}/core/enumerable/count_spec.rb +2 -5
- data/{core_spec → spec}/core/enumerable/fixtures/classes.rb +1 -2
- data/{core_spec → spec}/core/false/and_spec.rb +1 -3
- data/{core_spec → spec}/core/false/inspect_spec.rb +1 -3
- data/{core_spec → spec}/core/false/or_spec.rb +1 -3
- data/{core_spec → spec}/core/false/to_s_spec.rb +1 -3
- data/{core_spec → spec}/core/false/xor_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/allocate_spec.rb +1 -3
- data/spec/core/hash/assoc_spec.rb +25 -0
- data/{core_spec → spec}/core/hash/clear_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/clone_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/default_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/delete_if_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/element_reference_spec.rb +1 -3
- data/{core_spec → spec}/core/hash/element_set_spec.rb +1 -3
- data/spec/core/hash/merge_spec.rb +37 -0
- data/{core_spec → spec}/core/hash/new_spec.rb +1 -3
- data/{core_spec → spec}/core/matchdata/to_a_spec.rb +1 -3
- data/{core_spec → spec}/core/nil/and_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/inspect_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/nil_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/or_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/to_a_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/to_f_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/to_i_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/to_s_spec.rb +1 -4
- data/{core_spec → spec}/core/nil/xor_spec.rb +1 -4
- data/{core_spec → spec}/core/numeric/equal_value_spec.rb +1 -3
- data/{core_spec → spec}/core/regexp/match_spec.rb +10 -3
- data/{core_spec → spec}/core/symbol/to_proc_spec.rb +1 -3
- data/{core_spec → spec}/core/true/and_spec.rb +1 -3
- data/{core_spec → spec}/core/true/inspect_spec.rb +1 -3
- data/{core_spec → spec}/core/true/or_spec.rb +1 -3
- data/{core_spec → spec}/core/true/to_s_spec.rb +1 -3
- data/{core_spec → spec}/core/true/xor_spec.rb +1 -3
- data/spec/index.html +11 -0
- data/{core_spec → spec}/language/alias_spec.rb +1 -3
- data/{core_spec → spec}/language/and_spec.rb +1 -4
- data/{core_spec → spec}/language/array_spec.rb +1 -4
- data/{core_spec → spec}/language/block_spec.rb +20 -3
- data/{core_spec → spec}/language/break_spec.rb +40 -3
- data/{core_spec → spec}/language/case_spec.rb +1 -4
- data/{core_spec → spec}/language/defined_spec.rb +9 -3
- data/{core_spec → spec}/language/ensure_spec.rb +38 -3
- data/{core_spec → spec}/language/hash_spec.rb +1 -3
- data/{core_spec → spec}/language/if_spec.rb +1 -4
- data/{core_spec → spec}/language/loop_spec.rb +1 -3
- data/spec/language/metaclass_spec.rb +13 -0
- data/{core_spec → spec}/language/next_spec.rb +47 -3
- data/{core_spec → spec}/language/or_spec.rb +1 -4
- data/{core_spec → spec}/language/predefined_spec.rb +1 -3
- data/{core_spec/language/regexp/interpolation_spec.rb → spec/language/regexp_spec.rb} +6 -3
- data/{core_spec → spec}/language/send_spec.rb +38 -4
- data/spec/language/singleton_class_spec.rb +31 -0
- data/spec/language/super_spec.rb +188 -0
- data/{core_spec → spec}/language/symbol_spec.rb +1 -3
- data/{core_spec → spec}/language/undef_spec.rb +1 -3
- data/{core_spec → spec}/language/unless_spec.rb +1 -4
- data/{core_spec → spec}/language/until_spec.rb +1 -3
- data/{core_spec → spec}/language/variables_spec.rb +1 -3
- data/{core_spec → spec}/language/while_spec.rb +1 -3
- data/{spec → test}/builder/build_source_spec.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/adam.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/bar/a.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/bar/wow/b.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/bar/wow/cow/c.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/beynon.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/charles.js +0 -0
- data/{spec → test}/builder/fixtures/build_source/foo/a.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/foo/b.rb +0 -0
- data/{spec → test}/builder/fixtures/build_source/foo/x.js +0 -0
- data/{spec → test}/builder/fixtures/build_source/foo/y.js +0 -0
- data/{spec → test}/grammar/alias_spec.rb +0 -0
- data/{spec → test}/grammar/and_spec.rb +0 -0
- data/{spec → test}/grammar/array_spec.rb +0 -0
- data/{spec → test}/grammar/attrasgn_spec.rb +0 -0
- data/{spec → test}/grammar/begin_spec.rb +0 -0
- data/{spec → test}/grammar/block_spec.rb +0 -0
- data/{spec → test}/grammar/break_spec.rb +0 -0
- data/{spec → test}/grammar/call_spec.rb +0 -0
- data/{spec → test}/grammar/class_spec.rb +0 -0
- data/{spec → test}/grammar/const_spec.rb +0 -0
- data/{spec → test}/grammar/cvar_spec.rb +0 -0
- data/{spec → test}/grammar/def_spec.rb +0 -0
- data/{spec → test}/grammar/false_spec.rb +0 -0
- data/{spec → test}/grammar/file_spec.rb +0 -0
- data/{spec → test}/grammar/gvar_spec.rb +0 -0
- data/{spec → test}/grammar/hash_spec.rb +0 -0
- data/{spec → test}/grammar/iasgn_spec.rb +0 -0
- data/{spec → test}/grammar/if_spec.rb +0 -0
- data/{spec → test}/grammar/iter_spec.rb +0 -0
- data/{spec → test}/grammar/ivar_spec.rb +0 -0
- data/{spec → test}/grammar/lasgn_spec.rb +0 -0
- data/{spec → test}/grammar/line_spec.rb +0 -0
- data/{spec → test}/grammar/lvar_spec.rb +0 -0
- data/{spec → test}/grammar/masgn_spec.rb +0 -0
- data/{spec → test}/grammar/module_spec.rb +0 -0
- data/{spec → test}/grammar/nil_spec.rb +0 -0
- data/{spec → test}/grammar/not_spec.rb +0 -0
- data/{spec → test}/grammar/op_asgn1_spec.rb +0 -0
- data/{spec → test}/grammar/op_asgn2_spec.rb +0 -0
- data/{spec → test}/grammar/or_spec.rb +0 -0
- data/{spec → test}/grammar/return_spec.rb +0 -0
- data/{spec → test}/grammar/sclass_spec.rb +0 -0
- data/{spec → test}/grammar/self_spec.rb +0 -0
- data/{spec → test}/grammar/str_spec.rb +0 -0
- data/{spec → test}/grammar/super_spec.rb +0 -0
- data/{spec → test}/grammar/true_spec.rb +0 -0
- data/{spec → test}/grammar/undef_spec.rb +0 -0
- data/{spec → test}/grammar/unless_spec.rb +0 -0
- data/{spec → test}/grammar/while_spec.rb +0 -0
- data/{spec → test}/grammar/xstr_spec.rb +0 -0
- data/{spec → test}/grammar/yield_spec.rb +0 -0
- data/{spec → test}/spec_helper.rb +0 -0
- metadata +330 -264
- data/core/debug.js +0 -59
- data/core/debug.rb +0 -35
- data/core/dir.rb +0 -90
- data/core/file.rb +0 -83
- data/core/gemlib.rb +0 -30
- data/core/io.rb +0 -44
- data/core_spec/README.md +0 -34
- data/core_spec/core/array/collect_spec.rb +0 -3
- data/core_spec/core/array/element_set_spec.rb +0 -7
- data/core_spec/core/array/eql_spec.rb +0 -3
- data/core_spec/core/array/equal_value_spec.rb +0 -3
- data/core_spec/core/array/fixtures/classes.rb +0 -8
- data/core_spec/core/array/length_spec.rb +0 -3
- data/core_spec/core/array/map_spec.rb +0 -3
- data/core_spec/core/array/replace_spec.rb +0 -3
- data/core_spec/core/enumerable/collect_spec.rb +0 -3
- data/core_spec/core/enumerable/detect_spec.rb +0 -3
- data/core_spec/core/enumerable/find_spec.rb +0 -3
- data/core_spec/core/enumerable/first_spec.rb +0 -3
- data/core_spec/core/enumerable/shared/entries.rb +0 -7
- data/core_spec/core/enumerable/shared/find.rb +0 -49
- data/core_spec/core/enumerable/shared/take.rb +0 -31
- data/core_spec/core/enumerable/to_a_spec.rb +0 -7
- data/core_spec/core/hash/assoc_spec.rb +0 -29
- data/core_spec/core/object/is_a_spec.rb +0 -2
- data/core_spec/core/object/shared/kind_of.rb +0 -0
- data/core_spec/core/regexp/shared/match.rb +0 -11
- data/core_spec/language/fixtures/block.rb +0 -19
- data/core_spec/language/fixtures/break.rb +0 -39
- data/core_spec/language/fixtures/defined.rb +0 -9
- data/core_spec/language/fixtures/ensure.rb +0 -37
- data/core_spec/language/fixtures/next.rb +0 -46
- data/core_spec/language/fixtures/send.rb +0 -36
- data/core_spec/language/fixtures/super.rb +0 -43
- data/core_spec/language/regexp_spec.rb +0 -7
- data/core_spec/language/string_spec.rb +0 -4
- data/core_spec/language/super_spec.rb +0 -18
- data/core_spec/language/versions/hash_1.9.rb +0 -20
- data/core_spec/opal/opal/defined_spec.rb +0 -15
- data/core_spec/opal/opal/function_spec.rb +0 -11
- data/core_spec/opal/opal/native_spec.rb +0 -16
- data/core_spec/opal/opal/null_spec.rb +0 -10
- data/core_spec/opal/opal/number_spec.rb +0 -11
- data/core_spec/opal/opal/object_spec.rb +0 -16
- data/core_spec/opal/opal/string_spec.rb +0 -11
- data/core_spec/opal/opal/typeof_spec.rb +0 -9
- data/core_spec/opal/opal/undefined_spec.rb +0 -10
- data/core_spec/opal/true/case_compare_spec.rb +0 -12
- data/core_spec/opal/true/class_spec.rb +0 -10
- data/core_spec/release_runner.html +0 -17
- data/core_spec/runner.html +0 -16
- data/core_spec/spec_helper.rb +0 -23
- data/lib/opal/context.rb +0 -269
- data/lib/opal/dependency_builder.rb +0 -133
- data/lib/opal/environment.rb +0 -87
- data/lib/opal/parser/sexp.rb +0 -17
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "FalseClass#^" do
|
4
2
|
it "returns false if other is nil or false, otherwise true" do
|
5
3
|
(false ^ false).should == false
|
@@ -8,4 +6,4 @@ describe "FalseClass#^" do
|
|
8
6
|
(false ^ "").should == true
|
9
7
|
(false ^ mock('x')).should == true
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Hash.allocate" do
|
4
2
|
it "returns an instance of Hash" do
|
5
3
|
hsh = Hash.allocate
|
@@ -12,4 +10,4 @@ describe "Hash.allocate" do
|
|
12
10
|
hsh[:a] = 1
|
13
11
|
hsh.should == { :a => 1 }
|
14
12
|
end
|
15
|
-
end
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
describe "Hash#assoc" do
|
2
|
+
before(:each) do
|
3
|
+
@h = {:apple => :green, :orange => :orange, :grape => :green, :banana => :yellow}
|
4
|
+
end
|
5
|
+
|
6
|
+
it "returns an Array is the argument is == to a key of the Hash" do
|
7
|
+
@h.assoc(:apple).should be_kind_of(Array)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "returns a 2-element Array if the argument is == to a key of the Hash" do
|
11
|
+
@h.assoc(:grape).size.should == 2
|
12
|
+
end
|
13
|
+
|
14
|
+
it "sets the first element of the Array to the located key" do
|
15
|
+
@h.assoc(:banana).first.should == :banana
|
16
|
+
end
|
17
|
+
|
18
|
+
it "sets the last element of the Array to the value of the located key" do
|
19
|
+
@h.assoc(:banana).last.should == :yellow
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns nil if the argument if not a key of the Hash" do
|
23
|
+
@h.assoc(:green).should be_nil
|
24
|
+
end
|
25
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Hash#clone" do
|
4
2
|
it "copies instance variable but not the objects they refer to" do
|
5
3
|
hash = {'key' => 'value'}
|
@@ -9,4 +7,4 @@ describe "Hash#clone" do
|
|
9
7
|
clone.should == hash
|
10
8
|
clone.object_id.should_not == hash.object_id
|
11
9
|
end
|
12
|
-
end
|
10
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Hash#delete_if" do
|
4
2
|
it "yields two arguments: key and value" do
|
5
3
|
all_args = []
|
@@ -12,4 +10,4 @@ describe "Hash#delete_if" do
|
|
12
10
|
h.delete_if { |k,v| v % 2 == 1 }.should equal(h)
|
13
11
|
h.should == {:b => 2, :d => 4}
|
14
12
|
end
|
15
|
-
end
|
13
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Hash#[]" do
|
4
2
|
it "returns the value for the key" do
|
5
3
|
obj = Object.new
|
@@ -13,4 +11,4 @@ describe "Hash#[]" do
|
|
13
11
|
it "returns nil as default default value" do
|
14
12
|
{0 => 0}[5].should == nil
|
15
13
|
end
|
16
|
-
end
|
14
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
describe "Hash#merge" do
|
2
|
+
it "returns a new hash by combining self with the contents of other" do
|
3
|
+
h = {1 => :a, 2 => :b, 3 => :c}.merge(:a => 1, :c => 2)
|
4
|
+
h.should == {:c => 2, 1 => :a, 2 => :b, :a => 1, 3 => :c}
|
5
|
+
end
|
6
|
+
|
7
|
+
it "sets any duplicate key to the value of the block if passed a block" do
|
8
|
+
h1 = {:a => 2, :b => 1, :d => 5}
|
9
|
+
h2 = {:a => -2, :b => 4, :c => -3}
|
10
|
+
r = h1.merge(h2) { |k,x,y| nil }
|
11
|
+
r.should == {:a => nil, :b => nil, :c => -3, :d => 5}
|
12
|
+
|
13
|
+
r = h1.merge(h2) { |k,x,y| "#{k}:#{x+2*y}" }
|
14
|
+
r.should == {:a => "a:-2", :b => "b:9", :c => -3, :d => 5}
|
15
|
+
|
16
|
+
r = h1.merge(h1) { |k,x,y| :x }
|
17
|
+
r.should == {:a => :x, :b => :x, :d => :x}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "Hash#merge" do
|
22
|
+
it "adds the entries from other, overwriting duplicate keys. Returns self" do
|
23
|
+
h = {:_1 => 'a', :_2 => '3'}
|
24
|
+
h.merge(:_1 => '9', :_9 => 2).should equal(h)
|
25
|
+
h.should == {:_1 => "9", :_2 => "3", :_9 => 2}
|
26
|
+
end
|
27
|
+
|
28
|
+
it "sets any duplicate key to the value of block if passed a block" do
|
29
|
+
h1 = {:a => 2, :b => -1}
|
30
|
+
h2 = {:a => -2, :c => 1}
|
31
|
+
h1.merge(h2) { |k,x,y| 3.14 }.should equal(h1)
|
32
|
+
h1.should == {:c => 1, :b => -1, :a => 3.14}
|
33
|
+
|
34
|
+
h1.merge(h1) { nil }
|
35
|
+
h1.should == {:a => nil, :b => nil, :c => nil}
|
36
|
+
end
|
37
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Hash.new" do
|
4
2
|
it "creates an empty Hash if passed no arguments" do
|
5
3
|
Hash.new.should == {}
|
@@ -10,4 +8,4 @@ describe "Hash.new" do
|
|
10
8
|
Hash.new(5).default.should == 5
|
11
9
|
Hash.new({}).default.should == {}
|
12
10
|
end
|
13
|
-
end
|
11
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "NilClass#&" do
|
4
2
|
it "returns false" do
|
5
3
|
(nil & nil).should == false
|
@@ -8,5 +6,4 @@ describe "NilClass#&" do
|
|
8
6
|
(nil & "").should == false
|
9
7
|
(nil & mock('x')).should == false
|
10
8
|
end
|
11
|
-
end
|
12
|
-
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "NilClass#|" do
|
4
2
|
it "returns false if other is nil or false, otherwise true" do
|
5
3
|
(nil | nil).should == false
|
@@ -8,5 +6,4 @@ describe "NilClass#|" do
|
|
8
6
|
(nil | "").should == true
|
9
7
|
(nil | 'x').should == true
|
10
8
|
end
|
11
|
-
end
|
12
|
-
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "NilClass#to_f" do
|
4
2
|
it "returns 0.0" do
|
5
3
|
nil.to_f.should == 0.0
|
@@ -8,5 +6,4 @@ describe "NilClass#to_f" do
|
|
8
6
|
it "does not cause NilClass to be coerced to Float" do
|
9
7
|
(0.0 == nil).should == false
|
10
8
|
end
|
11
|
-
end
|
12
|
-
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "NilClass#to_i" do
|
4
2
|
it "returns 0" do
|
5
3
|
nil.to_i.should == 0
|
@@ -8,5 +6,4 @@ describe "NilClass#to_i" do
|
|
8
6
|
it "does not cause NilClass to be coerced to Fixnum" do
|
9
7
|
(0 == nil).should == false
|
10
8
|
end
|
11
|
-
end
|
12
|
-
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "NilClass#^" do
|
4
2
|
it "returns false if other is nil or false, otherwise true" do
|
5
3
|
(nil ^ nil).should == false
|
@@ -8,5 +6,4 @@ describe "NilClass#^" do
|
|
8
6
|
(nil ^ "").should == true
|
9
7
|
(nil ^ 'x').should == true
|
10
8
|
end
|
11
|
-
end
|
12
|
-
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Numeric#==" do
|
4
2
|
it "returns true if self has the same value as other" do
|
5
3
|
(1 == 1).should == true
|
@@ -8,4 +6,4 @@ describe "Numeric#==" do
|
|
8
6
|
(9 == 9.0).should == true
|
9
7
|
(9 == 9.01).should == false
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
@@ -1,6 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
require File.expand_path('../shared/match', __FILE__)
|
3
|
-
|
4
1
|
describe "Regexp#=~ on a successful match" do
|
5
2
|
it "returns the index of the first character of the matching region" do
|
6
3
|
(/(.)(.)(.)/ =~ "abc").should == 0
|
@@ -21,3 +18,13 @@ describe "Regexp#match on a successful match" do
|
|
21
18
|
$~.should be_nil
|
22
19
|
end
|
23
20
|
end
|
21
|
+
|
22
|
+
describe :regexp_match do
|
23
|
+
it "returns nil if there is no match" do
|
24
|
+
/xyz/.match("abxyc").should be_nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns nil if the object is nil" do
|
28
|
+
/xyz/.match(nil).should be_nil
|
29
|
+
end
|
30
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "TrueClass#&" do
|
4
2
|
it "returns false if other is nil or false, otherwise true" do
|
5
3
|
(true & true).should == true
|
@@ -8,4 +6,4 @@ describe "TrueClass#&" do
|
|
8
6
|
(true & "").should == true
|
9
7
|
(true & mock('x')).should == true
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "TrueClass#|" do
|
4
2
|
it "returns true" do
|
5
3
|
(true | true).should == true
|
@@ -8,4 +6,4 @@ describe "TrueClass#|" do
|
|
8
6
|
(true | "").should == true
|
9
7
|
(true | mock('x')).should == true
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "TrueClass#^" do
|
4
2
|
it "returns true if other is nil or false, otherwise false" do
|
5
3
|
(true ^ true).should == false
|
@@ -8,4 +6,4 @@ describe "TrueClass#^" do
|
|
8
6
|
(true ^ "").should == false
|
9
7
|
(true ^ mock('x')).should == false
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
data/spec/index.html
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title></title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<script type="text/javascript" src="../build/opal.js"></script>
|
8
|
+
<script type="text/javascript" src="../build/opal-spec.js"></script>
|
9
|
+
<script type="text/javascript" src="../build/opal.specs.js"></script>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "The '&&' statement" do
|
4
2
|
it "short-circuits evaluation at the first condition to be false" do
|
5
3
|
x = nil
|
@@ -58,5 +56,4 @@ describe "The 'and' statement" do
|
|
58
56
|
(true and ()).should be_nil
|
59
57
|
(() and ()).should be_nil
|
60
58
|
end
|
61
|
-
end
|
62
|
-
|
59
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
1
|
describe "Array literals" do
|
4
2
|
it "[] should return a new array populated with the given elements" do
|
5
3
|
array = [1, 'a', nil]
|
@@ -64,5 +62,4 @@ describe "The unpacking splat operator (*)" do
|
|
64
62
|
splatted_array = [3, 4, 5]
|
65
63
|
[1, 2, *splatted_array].should == [1, 2, 3, 4, 5]
|
66
64
|
end
|
67
|
-
end
|
68
|
-
|
65
|
+
end
|