opal 0.3.41 → 0.3.42
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/.gitignore +2 -0
- data/.travis.yml +3 -0
- data/CHANGELOG.md +14 -1
- data/Gemfile +2 -5
- data/Rakefile +41 -3
- data/bin/opal +33 -0
- data/lib/opal.rb +2 -12
- data/lib/opal/core_ext.rb +5 -0
- data/lib/opal/grammar.rb +2207 -2138
- data/lib/opal/grammar.y +21 -0
- data/lib/opal/grammar_helpers.rb +360 -0
- data/lib/opal/lexer.rb +55 -401
- data/lib/opal/lexer_scope.rb +28 -0
- data/lib/opal/parser.rb +155 -171
- data/lib/opal/target_scope.rb +257 -0
- data/lib/opal/version.rb +1 -1
- data/opal.gemspec +6 -2
- data/opal/opal-parser.js.erb +3 -2
- data/opal/opal.rb +20 -18
- data/opal/opal/array.rb +21 -12
- data/opal/opal/basic_object.rb +2 -1
- data/opal/opal/boolean.rb +3 -0
- data/opal/opal/browser_loader.js +57 -0
- data/opal/opal/class.rb +51 -13
- data/opal/opal/date.rb +1 -20
- data/opal/opal/enumerable.rb +66 -33
- data/opal/opal/error.rb +2 -0
- data/opal/opal/hash.rb +1 -1
- data/opal/opal/kernel.rb +14 -3
- data/opal/opal/nil_class.rb +4 -0
- data/opal/opal/proc.rb +9 -1
- data/opal/opal/racc.rb +2 -2
- data/opal/opal/regexp.rb +1 -1
- data/opal/opal/runtime.js +14 -4
- data/opal/opal/string.rb +21 -4
- data/opal/opal/time.rb +27 -0
- data/spec/core/array/allocate_spec.rb +7 -1
- data/spec/core/array/append_spec.rb +18 -3
- data/spec/core/array/array_spec.rb +7 -0
- data/spec/core/array/assoc_spec.rb +23 -8
- data/spec/core/array/at_spec.rb +23 -3
- data/spec/core/array/choice_spec.rb +20 -0
- data/spec/core/array/clear_spec.rb +45 -4
- data/spec/core/array/combination_spec.rb +55 -0
- data/spec/core/array/compact_spec.rb +72 -1
- data/spec/core/array/constructor_spec.rb +13 -2
- data/spec/core/array/count_spec.rb +15 -7
- data/spec/core/array/delete_at_spec.rb +44 -1
- data/spec/core/array/delete_if_spec.rb +52 -2
- data/spec/core/array/delete_spec.rb +83 -2
- data/spec/core/array/drop_spec.rb +24 -16
- data/spec/core/array/drop_while_spec.rb +17 -0
- data/spec/core/array/each_index_spec.rb +11 -1
- data/spec/core/array/each_spec.rb +20 -2
- data/spec/core/array/empty_spec.rb +4 -1
- data/spec/core/array/eql_spec.rb +14 -0
- data/spec/core/array/fetch_spec.rb +31 -2
- data/spec/core/array/find_index_spec.rb +8 -0
- data/spec/core/array/first_spec.rb +45 -8
- data/spec/core/array/fixtures/classes.rb +538 -0
- data/spec/core/array/flatten_spec.rb +200 -7
- data/spec/core/array/frozen_spec.rb +32 -0
- data/spec/core/array/include_spec.rb +16 -1
- data/spec/core/array/index_spec.rb +5 -25
- data/spec/core/array/insert_spec.rb +37 -3
- data/spec/core/array/inspect_spec.rb +6 -12
- data/spec/core/array/intersection_spec.rb +55 -4
- data/spec/core/array/join_spec.rb +29 -4
- data/spec/core/array/keep_if_spec.rb +13 -6
- data/spec/core/array/last_spec.rb +35 -1
- data/spec/core/array/length_spec.rb +7 -4
- data/spec/core/array/map_spec.rb +9 -47
- data/spec/core/array/minus_spec.rb +68 -4
- data/spec/core/array/multiply_spec.rb +138 -6
- data/spec/core/array/new_spec.rb +92 -3
- data/spec/core/array/ntimes_spec.rb +26 -0
- data/spec/core/array/plus_spec.rb +48 -2
- data/spec/core/array/pop_spec.rb +159 -39
- data/spec/core/array/push_spec.rb +29 -1
- data/spec/core/array/rassoc_spec.rb +31 -2
- data/spec/core/array/reject_spec.rb +89 -2
- data/spec/core/array/replace_spec.rb +7 -29
- data/spec/core/array/reverse_each_spec.rb +25 -1
- data/spec/core/array/reverse_spec.rb +53 -1
- data/spec/core/array/rindex_spec.rb +55 -5
- data/spec/core/array/select_spec.rb +35 -8
- data/spec/core/array/shared/collect.rb +0 -0
- data/spec/core/array/shared/enumeratorize.rb +12 -0
- data/spec/core/array/shared/eql.rb +95 -0
- data/spec/core/array/shared/index.rb +37 -0
- data/spec/core/array/shared/inspect.rb +3 -0
- data/spec/core/array/shared/join.rb +7 -0
- data/spec/core/array/shared/keep_if.rb +0 -0
- data/spec/core/array/shared/length.rb +0 -0
- data/spec/core/array/shared/replace.rb +0 -0
- data/spec/core/array/shared/slice.rb +0 -0
- data/spec/core/array/shift_spec.rb +132 -23
- data/spec/core/array/shuffle_spec.rb +82 -6
- data/spec/core/array/size_spec.rb +7 -4
- data/spec/core/array/slice_spec.rb +132 -1
- data/spec/core/array/sort_spec.rb +263 -14
- data/spec/core/array/take_spec.rb +24 -16
- data/spec/core/array/take_while_spec.rb +14 -10
- data/spec/core/array/to_a_spec.rb +18 -1
- data/spec/core/array/to_ary_spec.rb +15 -1
- data/spec/core/array/try_convert_spec.rb +39 -2
- data/spec/core/array/uniq_spec.rb +148 -3
- data/spec/core/array/unshift_spec.rb +36 -1
- data/spec/core/array/zip_spec.rb +36 -1
- data/spec/core/class/new_spec.rb +8 -6
- data/spec/core/enumerable/all_spec.rb +37 -9
- data/spec/core/enumerable/any_spec.rb +45 -7
- data/spec/core/enumerable/collect_spec.rb +4 -1
- data/spec/core/enumerable/count_spec.rb +4 -1
- data/spec/core/enumerable/detect_spec.rb +2 -2
- data/spec/core/enumerable/drop_spec.rb +4 -1
- data/spec/core/enumerable/drop_while_spec.rb +4 -1
- data/spec/core/enumerable/each_slice_spec.rb +2 -1
- data/spec/core/enumerable/each_with_index_spec.rb +4 -1
- data/spec/core/enumerable/each_with_object_spec.rb +4 -1
- data/spec/core/enumerable/entries_spec.rb +4 -1
- data/spec/core/enumerable/find_all_spec.rb +4 -1
- data/spec/core/enumerable/find_index_spec.rb +4 -1
- data/spec/core/enumerable/find_spec.rb +5 -2
- data/spec/core/enumerable/first_spec.rb +4 -1
- data/spec/core/enumerable/fixtures/classes.rb +198 -2
- data/spec/core/enumerable/grep_spec.rb +4 -1
- data/spec/core/enumerable/take_spec.rb +4 -1
- data/spec/core/enumerable/to_a_spec.rb +4 -1
- data/spec/core/false/and_spec.rb +11 -0
- data/spec/core/false/inspect_spec.rb +7 -0
- data/spec/core/false/or_spec.rb +11 -0
- data/spec/core/false/to_s_spec.rb +7 -0
- data/spec/core/false/xor_spec.rb +11 -0
- data/spec/core/kernel/rand_spec.rb +5 -5
- data/spec/core/module/const_get_spec.rb +4 -4
- data/spec/core/module/fixtures/classes.rb +434 -0
- data/spec/core/module/method_defined_spec.rb +49 -0
- data/spec/core/module/module_function_spec.rb +28 -0
- data/spec/core/nil/and_spec.rb +3 -1
- data/spec/core/nil/dup_spec.rb +7 -0
- data/spec/core/nil/inspect_spec.rb +3 -1
- data/spec/core/nil/nil_spec.rb +3 -1
- data/spec/core/nil/or_spec.rb +4 -2
- data/spec/core/nil/to_a_spec.rb +3 -1
- data/spec/core/nil/to_f_spec.rb +3 -1
- data/spec/core/nil/to_i_spec.rb +3 -1
- data/spec/core/nil/to_s_spec.rb +3 -1
- data/spec/core/nil/xor_spec.rb +4 -2
- data/spec/core/string/element_reference_spec.rb +14 -1
- data/spec/core/string/fixtures/classes.rb +0 -0
- data/spec/core/true/and_spec.rb +11 -0
- data/spec/core/true/inspect_spec.rb +7 -0
- data/spec/core/true/or_spec.rb +11 -0
- data/spec/core/true/to_s_spec.rb +7 -0
- data/spec/core/true/xor_spec.rb +11 -0
- data/spec/{core → core_ext}/array/element_reference_spec.rb +0 -0
- data/spec/{core → core_ext}/array/equal_value_spec.rb +0 -0
- data/spec/{core → core_ext}/array/fill_spec.rb +0 -0
- data/spec/{core → core_ext}/array/reduce_spec.rb +0 -0
- data/spec/core_ext/basic_object/send_spec.rb +3 -3
- data/spec/{core → core_ext}/boolean/singleton_class_spec.rb +0 -0
- data/spec/{core → core_ext}/boolean/to_json_spec.rb +0 -0
- data/spec/core_ext/class/_inherited_spec.rb +3 -3
- data/spec/core_ext/class/proc_methods_spec.rb +2 -2
- data/spec/core_ext/class/singleton_methods_spec.rb +8 -8
- data/spec/core_ext/method_missing_spec.rb +3 -3
- data/spec/core_ext/native/method_missing_spec.rb +3 -2
- data/spec/core_ext/native/to_native_spec.rb +3 -2
- data/spec/{core → core_ext}/nil/to_json_spec.rb +0 -0
- data/spec/date.rb +0 -0
- data/spec/fileutils.rb +0 -0
- data/spec/filters/ancestors.rb +4 -0
- data/spec/filters/array_delete.rb +3 -0
- data/spec/filters/array_fetch.rb +3 -0
- data/spec/filters/array_first.rb +3 -0
- data/spec/filters/array_flatten.rb +14 -0
- data/spec/filters/array_intersection.rb +5 -0
- data/spec/filters/array_join.rb +6 -0
- data/spec/filters/array_subclasses.rb +4 -0
- data/spec/filters/block_args.rb +3 -0
- data/spec/filters/coerce_integer.rb +9 -0
- data/spec/filters/frozen.rb +4 -0
- data/spec/filters/mocks.rb +3 -0
- data/spec/filters/should_receive.rb +4 -0
- data/spec/filters/tainted.rb +7 -0
- data/spec/fixtures/class.rb +124 -0
- data/spec/fixtures/class_variables.rb +0 -0
- data/spec/fixtures/constants.rb +0 -0
- data/spec/grammar/alias_spec.rb +1 -1
- data/spec/grammar/def_spec.rb +1 -0
- data/spec/grammar/lvar_spec.rb +1 -2
- data/spec/grammar/nth_ref_spec.rb +13 -0
- data/spec/grammar/sclass_spec.rb +6 -7
- data/spec/grammar/str_spec.rb +4 -4
- data/spec/grammar/string_spec.rb +8 -0
- data/spec/grammar/xstr_spec.rb +4 -4
- data/spec/iconv.rb +0 -0
- data/spec/language/alias_spec.rb +140 -3
- data/spec/language/and_spec.rb +14 -7
- data/spec/language/array_spec.rb +57 -5
- data/spec/language/block_spec.rb +466 -49
- data/spec/language/break_spec.rb +294 -44
- data/spec/language/case_spec.rb +151 -3
- data/spec/language/class_spec.rb +196 -0
- data/spec/language/class_variable_spec.rb +56 -0
- data/spec/language/def_spec.rb +507 -4
- data/spec/language/defined_spec.rb +19 -7
- data/spec/language/ensure_spec.rb +26 -39
- data/spec/language/execution_spec.rb +15 -0
- data/spec/language/fixtures/array.rb +11 -0
- data/spec/language/fixtures/block.rb +57 -0
- data/spec/language/fixtures/break.rb +240 -0
- data/spec/language/fixtures/ensure.rb +72 -0
- data/spec/language/fixtures/literal_lambda.rb +7 -0
- data/spec/language/fixtures/metaclass.rb +33 -0
- data/spec/language/fixtures/module.rb +24 -0
- data/spec/language/fixtures/next.rb +78 -12
- data/spec/language/fixtures/return.rb +118 -0
- data/spec/language/fixtures/send.rb +110 -0
- data/spec/language/fixtures/send_1.9.rb +22 -0
- data/spec/language/fixtures/super.rb +308 -0
- data/spec/language/fixtures/variables.rb +58 -0
- data/spec/language/fixtures/yield.rb +5 -0
- data/spec/language/for_spec.rb +192 -0
- data/spec/language/hash_spec.rb +29 -5
- data/spec/language/if_spec.rb +90 -9
- data/spec/language/literal_lambda_spec.rb +1 -47
- data/spec/language/loop_spec.rb +39 -2
- data/spec/language/metaclass_spec.rb +151 -5
- data/spec/language/module_spec.rb +56 -0
- data/spec/language/next_spec.rb +370 -12
- data/spec/language/not_spec.rb +55 -0
- data/spec/language/numbers_spec.rb +56 -0
- data/spec/language/or_spec.rb +31 -3
- data/spec/language/order_spec.rb +79 -0
- data/spec/language/precedence_spec.rb +483 -0
- data/spec/language/proc_spec.rb +249 -21
- data/spec/language/redo_spec.rb +67 -0
- data/spec/language/rescue_spec.rb +121 -0
- data/spec/language/retry_spec.rb +56 -0
- data/spec/language/return_spec.rb +281 -0
- data/spec/language/send_spec.rb +141 -48
- data/spec/language/singleton_class_spec.rb +1 -1
- data/spec/language/string_spec.rb +11 -0
- data/spec/language/super_spec.rb +213 -133
- data/spec/language/symbol_spec.rb +2 -1
- data/spec/language/undef_spec.rb +3 -1
- data/spec/language/unless_spec.rb +6 -2
- data/spec/language/until_spec.rb +102 -3
- data/spec/language/variables_spec.rb +1212 -16
- data/spec/language/versions/array_1.9.rb +39 -0
- data/spec/language/versions/case_1.9.rb +20 -0
- data/spec/language/versions/hash_1.9.rb +18 -0
- data/spec/language/versions/literal_lambda_1.9.rb +143 -0
- data/spec/language/versions/not_1.9.rb +22 -0
- data/spec/language/versions/send_1.9.rb +241 -0
- data/spec/language/versions/symbol_1.9.rb +15 -0
- data/spec/language/versions/variables_1.9.rb +8 -0
- data/spec/language/while_spec.rb +70 -5
- data/spec/language/yield_spec.rb +32 -6
- data/spec/mspec/guards/block_device.rb +0 -0
- data/spec/mspec/guards/endian.rb +0 -0
- data/spec/mspec/helpers/environment.rb +0 -0
- data/spec/mspec/helpers/language_version.rb +0 -0
- data/spec/mspec/helpers/tmp.rb +0 -0
- data/spec/ospec/filter.rb +32 -0
- data/spec/ospec/main.rb.erb +18 -0
- data/spec/ospec/phantom.rb +97 -0
- data/spec/ospec/runner.rb +95 -0
- data/spec/ospec/sprockets.js +40 -0
- data/spec/pp.rb +3 -0
- data/spec/rbconfig.rb +5 -0
- data/spec/spec_helper.rb +53 -26
- data/spec/yaml.rb +0 -0
- metadata +275 -31
- data/config.ru +0 -8
- data/lib/opal/processor.rb +0 -47
- data/lib/opal/scope.rb +0 -236
- data/lib/opal/server.rb +0 -94
- data/spec/core/boolean/and_spec.rb +0 -17
- data/spec/core/boolean/inspect_spec.rb +0 -9
- data/spec/core/boolean/or_spec.rb +0 -17
- data/spec/core/boolean/to_s_spec.rb +0 -9
- data/spec/core/boolean/xor_spec.rb +0 -17
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
require File.expand_path('../fixtures/classes', __FILE__)
|
3
|
+
|
4
|
+
describe "Module#method_defined?" do
|
5
|
+
pending "returns true if a public or private method with the given name is defined in self, self's ancestors or one of self's included modules" do
|
6
|
+
# Defined in Child
|
7
|
+
ModuleSpecs::Child.method_defined?(:public_child).should == true
|
8
|
+
ModuleSpecs::Child.method_defined?("private_child").should == false
|
9
|
+
ModuleSpecs::Child.method_defined?(:accessor_method).should == true
|
10
|
+
|
11
|
+
# Defined in Parent
|
12
|
+
# ModuleSpecs::Child.method_defined?("public_parent").should == true
|
13
|
+
# ModuleSpecs::Child.method_defined?(:private_parent).should == false
|
14
|
+
|
15
|
+
# Defined in Module
|
16
|
+
# ModuleSpecs::Child.method_defined?(:public_module).should == true
|
17
|
+
# ModuleSpecs::Child.method_defined?(:protected_module).should == true
|
18
|
+
# ModuleSpecs::Child.method_defined?(:private_module).should == false
|
19
|
+
|
20
|
+
# Defined in SuperModule
|
21
|
+
# ModuleSpecs::Child.method_defined?(:public_super_module).should == true
|
22
|
+
# ModuleSpecs::Child.method_defined?(:protected_super_module).should == true
|
23
|
+
# ModuleSpecs::Child.method_defined?(:private_super_module).should == false
|
24
|
+
end
|
25
|
+
|
26
|
+
# unlike alias_method, module_function, public, and friends,
|
27
|
+
pending "does not search Object or Kernel when called on a module" do
|
28
|
+
m = Module.new
|
29
|
+
|
30
|
+
m.method_defined?(:module_specs_public_method_on_kernel).should be_false
|
31
|
+
end
|
32
|
+
|
33
|
+
pending "raises a TypeError when the given object is not a string/symbol/fixnum" do
|
34
|
+
c = Class.new
|
35
|
+
o = mock('123')
|
36
|
+
|
37
|
+
lambda { c.method_defined?(o) }.should raise_error(TypeError)
|
38
|
+
|
39
|
+
o.should_receive(:to_str).and_return(123)
|
40
|
+
lambda { c.method_defined?(o) }.should raise_error(TypeError)
|
41
|
+
end
|
42
|
+
|
43
|
+
pending "converts the given name to a string using to_str" do
|
44
|
+
c = Class.new { def test(); end }
|
45
|
+
(o = mock('test')).should_receive(:to_str).and_return("test")
|
46
|
+
|
47
|
+
c.method_defined?(o).should == true
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
require File.expand_path('../fixtures/classes', __FILE__)
|
3
|
+
|
4
|
+
describe "Module#module_function with specific method names" do
|
5
|
+
it "creates duplicates of the given instance methods on the Module object" do
|
6
|
+
m = Module.new do
|
7
|
+
def test() end
|
8
|
+
def test2() end
|
9
|
+
def test3() end
|
10
|
+
|
11
|
+
module_function :test, :test2
|
12
|
+
end
|
13
|
+
|
14
|
+
m.respond_to?(:test).should == true
|
15
|
+
m.respond_to?(:test2).should == true
|
16
|
+
m.respond_to?(:test3).should == false
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the current module" do
|
20
|
+
x = nil
|
21
|
+
m = Module.new do
|
22
|
+
def test() end
|
23
|
+
x = module_function :test
|
24
|
+
end
|
25
|
+
|
26
|
+
x.should == m
|
27
|
+
end
|
28
|
+
end
|
data/spec/core/nil/and_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
1
3
|
describe "NilClass#&" do
|
2
4
|
it "returns false" do
|
3
5
|
(nil & nil).should == false
|
@@ -6,4 +8,4 @@ describe "NilClass#&" do
|
|
6
8
|
(nil & "").should == false
|
7
9
|
(nil & mock('x')).should == false
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
data/spec/core/nil/nil_spec.rb
CHANGED
data/spec/core/nil/or_spec.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
1
3
|
describe "NilClass#|" do
|
2
4
|
it "returns false if other is nil or false, otherwise true" do
|
3
5
|
(nil | nil).should == false
|
4
6
|
(nil | true).should == true
|
5
7
|
(nil | false).should == false
|
6
8
|
(nil | "").should == true
|
7
|
-
(nil | 'x').should == true
|
9
|
+
(nil | mock('x')).should == true
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
data/spec/core/nil/to_a_spec.rb
CHANGED
data/spec/core/nil/to_f_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
1
3
|
describe "NilClass#to_f" do
|
2
4
|
it "returns 0.0" do
|
3
5
|
nil.to_f.should == 0.0
|
@@ -6,4 +8,4 @@ describe "NilClass#to_f" do
|
|
6
8
|
it "does not cause NilClass to be coerced to Float" do
|
7
9
|
(0.0 == nil).should == false
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
data/spec/core/nil/to_i_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
1
3
|
describe "NilClass#to_i" do
|
2
4
|
it "returns 0" do
|
3
5
|
nil.to_i.should == 0
|
@@ -6,4 +8,4 @@ describe "NilClass#to_i" do
|
|
6
8
|
it "does not cause NilClass to be coerced to Fixnum" do
|
7
9
|
(0 == nil).should == false
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
data/spec/core/nil/to_s_spec.rb
CHANGED
data/spec/core/nil/xor_spec.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
1
3
|
describe "NilClass#^" do
|
2
4
|
it "returns false if other is nil or false, otherwise true" do
|
3
5
|
(nil ^ nil).should == false
|
4
6
|
(nil ^ true).should == true
|
5
7
|
(nil ^ false).should == false
|
6
8
|
(nil ^ "").should == true
|
7
|
-
(nil ^ 'x').should == true
|
9
|
+
(nil ^ mock('x')).should == true
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
@@ -78,7 +78,20 @@ describe "with index, length" do
|
|
78
78
|
"hello there"[1..1].should == "e"
|
79
79
|
"hello there"[1..3].should == "ell"
|
80
80
|
"hello there"[1...3].should == "el"
|
81
|
+
"hello there"[-4..-2].should == "her"
|
82
|
+
"hello there"[-4...-2].should == "he"
|
81
83
|
"hello there"[5..-1].should == " there"
|
84
|
+
"hello there"[5...-1].should == " ther"
|
85
|
+
|
86
|
+
""[0..0].should == ""
|
87
|
+
|
88
|
+
"x"[0..0].should == "x"
|
89
|
+
"x"[0..1].should == "x"
|
90
|
+
"x"[0...1].should == "x"
|
91
|
+
"x"[0..-1].should == "x"
|
92
|
+
|
93
|
+
"x"[1..1].should == ""
|
94
|
+
"x"[1..-1].should == ""
|
82
95
|
end
|
83
96
|
end
|
84
|
-
end
|
97
|
+
end
|
File without changes
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "TrueClass#&" do
|
4
|
+
it "returns false if other is nil or false, otherwise true" do
|
5
|
+
(true & true).should == true
|
6
|
+
(true & false).should == false
|
7
|
+
(true & nil).should == false
|
8
|
+
(true & "").should == true
|
9
|
+
(true & mock('x')).should == true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "TrueClass#|" do
|
4
|
+
it "returns true" do
|
5
|
+
(true | true).should == true
|
6
|
+
(true | false).should == true
|
7
|
+
(true | nil).should == true
|
8
|
+
(true | "").should == true
|
9
|
+
(true | mock('x')).should == true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "TrueClass#^" do
|
4
|
+
it "returns true if other is nil or false, otherwise false" do
|
5
|
+
(true ^ true).should == false
|
6
|
+
(true ^ false).should == true
|
7
|
+
(true ^ nil).should == true
|
8
|
+
(true ^ "").should == false
|
9
|
+
(true ^ mock('x')).should == false
|
10
|
+
end
|
11
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -18,11 +18,11 @@ end
|
|
18
18
|
|
19
19
|
describe "BasicObject#__send__" do
|
20
20
|
it "should call method_missing for undefined method" do
|
21
|
-
BasicObjectSendSpec.new.__send__(:foo).should
|
22
|
-
BasicObjectSendSpec.new.__send__(:pow).should
|
21
|
+
BasicObjectSendSpec.new.__send__(:foo).should == :bar
|
22
|
+
BasicObjectSendSpec.new.__send__(:pow).should == 'called_pow'
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should pass on arguments to method_missing" do
|
26
|
-
BasicObjectSendSpec::Subclass.new.__send__(:blah, 1, 2, 3).should
|
26
|
+
BasicObjectSendSpec::Subclass.new.__send__(:blah, 1, 2, 3).should == [1, 2, 3]
|
27
27
|
end
|
28
28
|
end
|
File without changes
|
File without changes
|
@@ -25,8 +25,8 @@ end
|
|
25
25
|
|
26
26
|
describe "Class '_inherited' variable" do
|
27
27
|
it "contains an array of all subclasses of class" do
|
28
|
-
ClassInheritedSpecs::None.get_inherited_classes.should
|
29
|
-
ClassInheritedSpecs::A.get_inherited_classes.should
|
30
|
-
ClassInheritedSpecs::C.get_inherited_classes.should
|
28
|
+
ClassInheritedSpecs::None.get_inherited_classes.should == []
|
29
|
+
ClassInheritedSpecs::A.get_inherited_classes.should == [ClassInheritedSpecs::B, ClassInheritedSpecs::C]
|
30
|
+
ClassInheritedSpecs::C.get_inherited_classes.should == [ClassInheritedSpecs::D]
|
31
31
|
end
|
32
32
|
end
|
@@ -17,7 +17,7 @@ describe "Class: proc methods" do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it "subclasses inherit proc methods if defined on suprt class" do
|
20
|
-
ClassProcMethodsSpec::B[nil].should
|
21
|
-
ClassProcMethodsSpec::C[nil].should
|
20
|
+
ClassProcMethodsSpec::B[nil].should == :foo
|
21
|
+
ClassProcMethodsSpec::C[nil].should == :foo
|
22
22
|
end
|
23
23
|
end
|
@@ -20,22 +20,22 @@ end
|
|
20
20
|
|
21
21
|
describe "Class singleton methods" do
|
22
22
|
it "should be inherited by subclasses" do
|
23
|
-
ClassSingletonSpecs::B.foo.should
|
23
|
+
ClassSingletonSpecs::B.foo.should == :foo
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should be inherited by subclasses of subclasses" do
|
27
|
-
ClassSingletonSpecs::C.foo.should
|
27
|
+
ClassSingletonSpecs::C.foo.should == :foo
|
28
28
|
end
|
29
29
|
|
30
30
|
it "subclasses can override inherited methods" do
|
31
|
-
ClassSingletonSpecs::A.bar.should
|
32
|
-
ClassSingletonSpecs::B.bar.should
|
33
|
-
ClassSingletonSpecs::C.bar.should
|
31
|
+
ClassSingletonSpecs::A.bar.should == :bar
|
32
|
+
ClassSingletonSpecs::B.bar.should == :baz
|
33
|
+
ClassSingletonSpecs::C.bar.should == :baz
|
34
34
|
end
|
35
35
|
|
36
36
|
it "subclasses inherit additional methods defined on superclass after they are defined" do
|
37
|
-
ClassSingletonSpecs::A.woosh.should
|
38
|
-
ClassSingletonSpecs::B.woosh.should
|
39
|
-
ClassSingletonSpecs::C.woosh.should
|
37
|
+
ClassSingletonSpecs::A.woosh.should == :kapow
|
38
|
+
ClassSingletonSpecs::B.woosh.should == :kapow
|
39
|
+
ClassSingletonSpecs::C.woosh.should == :kapow
|
40
40
|
end
|
41
41
|
end
|
@@ -20,17 +20,17 @@ describe "method_missing" do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should pass the missing method name as first argument" do
|
23
|
-
@obj.foo.should
|
23
|
+
@obj.foo.should == [:foo, []]
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should correctly pass arguments to method_missing" do
|
27
|
-
@obj.bar(1, 2, 3).should
|
27
|
+
@obj.bar(1, 2, 3).should == [:bar, [1, 2, 3]]
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should pass blocks to method_missing" do
|
31
31
|
obj = MethodMissingSpecs::B.new
|
32
32
|
proc = proc { 1 }
|
33
|
-
obj.baz(1, 2, &proc).should
|
33
|
+
obj.baz(1, 2, &proc).should == [:baz, proc]
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
require File.expand_path('../fixtures/classes', __FILE__)
|
2
3
|
|
3
4
|
describe "Native#method_missing" do
|
4
5
|
it "forwards methods to wrapped object as native function calls" do
|
5
|
-
NativeSpecs.new("adam").toUpperCase.should
|
6
|
+
NativeSpecs.new("adam").toUpperCase.should == "ADAM"
|
6
7
|
end
|
7
8
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
require File.expand_path('../fixtures/classes', __FILE__)
|
2
3
|
|
3
4
|
describe "Native#to_native" do
|
4
5
|
it "returns the wrapped object" do
|
5
|
-
NativeSpecs.new(:foo).to_native.should
|
6
|
+
NativeSpecs.new(:foo).to_native.should == :foo
|
6
7
|
end
|
7
8
|
end
|
File without changes
|
data/spec/date.rb
ADDED
File without changes
|
data/spec/fileutils.rb
ADDED
File without changes
|