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.
Files changed (285) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +14 -1
  4. data/Gemfile +2 -5
  5. data/Rakefile +41 -3
  6. data/bin/opal +33 -0
  7. data/lib/opal.rb +2 -12
  8. data/lib/opal/core_ext.rb +5 -0
  9. data/lib/opal/grammar.rb +2207 -2138
  10. data/lib/opal/grammar.y +21 -0
  11. data/lib/opal/grammar_helpers.rb +360 -0
  12. data/lib/opal/lexer.rb +55 -401
  13. data/lib/opal/lexer_scope.rb +28 -0
  14. data/lib/opal/parser.rb +155 -171
  15. data/lib/opal/target_scope.rb +257 -0
  16. data/lib/opal/version.rb +1 -1
  17. data/opal.gemspec +6 -2
  18. data/opal/opal-parser.js.erb +3 -2
  19. data/opal/opal.rb +20 -18
  20. data/opal/opal/array.rb +21 -12
  21. data/opal/opal/basic_object.rb +2 -1
  22. data/opal/opal/boolean.rb +3 -0
  23. data/opal/opal/browser_loader.js +57 -0
  24. data/opal/opal/class.rb +51 -13
  25. data/opal/opal/date.rb +1 -20
  26. data/opal/opal/enumerable.rb +66 -33
  27. data/opal/opal/error.rb +2 -0
  28. data/opal/opal/hash.rb +1 -1
  29. data/opal/opal/kernel.rb +14 -3
  30. data/opal/opal/nil_class.rb +4 -0
  31. data/opal/opal/proc.rb +9 -1
  32. data/opal/opal/racc.rb +2 -2
  33. data/opal/opal/regexp.rb +1 -1
  34. data/opal/opal/runtime.js +14 -4
  35. data/opal/opal/string.rb +21 -4
  36. data/opal/opal/time.rb +27 -0
  37. data/spec/core/array/allocate_spec.rb +7 -1
  38. data/spec/core/array/append_spec.rb +18 -3
  39. data/spec/core/array/array_spec.rb +7 -0
  40. data/spec/core/array/assoc_spec.rb +23 -8
  41. data/spec/core/array/at_spec.rb +23 -3
  42. data/spec/core/array/choice_spec.rb +20 -0
  43. data/spec/core/array/clear_spec.rb +45 -4
  44. data/spec/core/array/combination_spec.rb +55 -0
  45. data/spec/core/array/compact_spec.rb +72 -1
  46. data/spec/core/array/constructor_spec.rb +13 -2
  47. data/spec/core/array/count_spec.rb +15 -7
  48. data/spec/core/array/delete_at_spec.rb +44 -1
  49. data/spec/core/array/delete_if_spec.rb +52 -2
  50. data/spec/core/array/delete_spec.rb +83 -2
  51. data/spec/core/array/drop_spec.rb +24 -16
  52. data/spec/core/array/drop_while_spec.rb +17 -0
  53. data/spec/core/array/each_index_spec.rb +11 -1
  54. data/spec/core/array/each_spec.rb +20 -2
  55. data/spec/core/array/empty_spec.rb +4 -1
  56. data/spec/core/array/eql_spec.rb +14 -0
  57. data/spec/core/array/fetch_spec.rb +31 -2
  58. data/spec/core/array/find_index_spec.rb +8 -0
  59. data/spec/core/array/first_spec.rb +45 -8
  60. data/spec/core/array/fixtures/classes.rb +538 -0
  61. data/spec/core/array/flatten_spec.rb +200 -7
  62. data/spec/core/array/frozen_spec.rb +32 -0
  63. data/spec/core/array/include_spec.rb +16 -1
  64. data/spec/core/array/index_spec.rb +5 -25
  65. data/spec/core/array/insert_spec.rb +37 -3
  66. data/spec/core/array/inspect_spec.rb +6 -12
  67. data/spec/core/array/intersection_spec.rb +55 -4
  68. data/spec/core/array/join_spec.rb +29 -4
  69. data/spec/core/array/keep_if_spec.rb +13 -6
  70. data/spec/core/array/last_spec.rb +35 -1
  71. data/spec/core/array/length_spec.rb +7 -4
  72. data/spec/core/array/map_spec.rb +9 -47
  73. data/spec/core/array/minus_spec.rb +68 -4
  74. data/spec/core/array/multiply_spec.rb +138 -6
  75. data/spec/core/array/new_spec.rb +92 -3
  76. data/spec/core/array/ntimes_spec.rb +26 -0
  77. data/spec/core/array/plus_spec.rb +48 -2
  78. data/spec/core/array/pop_spec.rb +159 -39
  79. data/spec/core/array/push_spec.rb +29 -1
  80. data/spec/core/array/rassoc_spec.rb +31 -2
  81. data/spec/core/array/reject_spec.rb +89 -2
  82. data/spec/core/array/replace_spec.rb +7 -29
  83. data/spec/core/array/reverse_each_spec.rb +25 -1
  84. data/spec/core/array/reverse_spec.rb +53 -1
  85. data/spec/core/array/rindex_spec.rb +55 -5
  86. data/spec/core/array/select_spec.rb +35 -8
  87. data/spec/core/array/shared/collect.rb +0 -0
  88. data/spec/core/array/shared/enumeratorize.rb +12 -0
  89. data/spec/core/array/shared/eql.rb +95 -0
  90. data/spec/core/array/shared/index.rb +37 -0
  91. data/spec/core/array/shared/inspect.rb +3 -0
  92. data/spec/core/array/shared/join.rb +7 -0
  93. data/spec/core/array/shared/keep_if.rb +0 -0
  94. data/spec/core/array/shared/length.rb +0 -0
  95. data/spec/core/array/shared/replace.rb +0 -0
  96. data/spec/core/array/shared/slice.rb +0 -0
  97. data/spec/core/array/shift_spec.rb +132 -23
  98. data/spec/core/array/shuffle_spec.rb +82 -6
  99. data/spec/core/array/size_spec.rb +7 -4
  100. data/spec/core/array/slice_spec.rb +132 -1
  101. data/spec/core/array/sort_spec.rb +263 -14
  102. data/spec/core/array/take_spec.rb +24 -16
  103. data/spec/core/array/take_while_spec.rb +14 -10
  104. data/spec/core/array/to_a_spec.rb +18 -1
  105. data/spec/core/array/to_ary_spec.rb +15 -1
  106. data/spec/core/array/try_convert_spec.rb +39 -2
  107. data/spec/core/array/uniq_spec.rb +148 -3
  108. data/spec/core/array/unshift_spec.rb +36 -1
  109. data/spec/core/array/zip_spec.rb +36 -1
  110. data/spec/core/class/new_spec.rb +8 -6
  111. data/spec/core/enumerable/all_spec.rb +37 -9
  112. data/spec/core/enumerable/any_spec.rb +45 -7
  113. data/spec/core/enumerable/collect_spec.rb +4 -1
  114. data/spec/core/enumerable/count_spec.rb +4 -1
  115. data/spec/core/enumerable/detect_spec.rb +2 -2
  116. data/spec/core/enumerable/drop_spec.rb +4 -1
  117. data/spec/core/enumerable/drop_while_spec.rb +4 -1
  118. data/spec/core/enumerable/each_slice_spec.rb +2 -1
  119. data/spec/core/enumerable/each_with_index_spec.rb +4 -1
  120. data/spec/core/enumerable/each_with_object_spec.rb +4 -1
  121. data/spec/core/enumerable/entries_spec.rb +4 -1
  122. data/spec/core/enumerable/find_all_spec.rb +4 -1
  123. data/spec/core/enumerable/find_index_spec.rb +4 -1
  124. data/spec/core/enumerable/find_spec.rb +5 -2
  125. data/spec/core/enumerable/first_spec.rb +4 -1
  126. data/spec/core/enumerable/fixtures/classes.rb +198 -2
  127. data/spec/core/enumerable/grep_spec.rb +4 -1
  128. data/spec/core/enumerable/take_spec.rb +4 -1
  129. data/spec/core/enumerable/to_a_spec.rb +4 -1
  130. data/spec/core/false/and_spec.rb +11 -0
  131. data/spec/core/false/inspect_spec.rb +7 -0
  132. data/spec/core/false/or_spec.rb +11 -0
  133. data/spec/core/false/to_s_spec.rb +7 -0
  134. data/spec/core/false/xor_spec.rb +11 -0
  135. data/spec/core/kernel/rand_spec.rb +5 -5
  136. data/spec/core/module/const_get_spec.rb +4 -4
  137. data/spec/core/module/fixtures/classes.rb +434 -0
  138. data/spec/core/module/method_defined_spec.rb +49 -0
  139. data/spec/core/module/module_function_spec.rb +28 -0
  140. data/spec/core/nil/and_spec.rb +3 -1
  141. data/spec/core/nil/dup_spec.rb +7 -0
  142. data/spec/core/nil/inspect_spec.rb +3 -1
  143. data/spec/core/nil/nil_spec.rb +3 -1
  144. data/spec/core/nil/or_spec.rb +4 -2
  145. data/spec/core/nil/to_a_spec.rb +3 -1
  146. data/spec/core/nil/to_f_spec.rb +3 -1
  147. data/spec/core/nil/to_i_spec.rb +3 -1
  148. data/spec/core/nil/to_s_spec.rb +3 -1
  149. data/spec/core/nil/xor_spec.rb +4 -2
  150. data/spec/core/string/element_reference_spec.rb +14 -1
  151. data/spec/core/string/fixtures/classes.rb +0 -0
  152. data/spec/core/true/and_spec.rb +11 -0
  153. data/spec/core/true/inspect_spec.rb +7 -0
  154. data/spec/core/true/or_spec.rb +11 -0
  155. data/spec/core/true/to_s_spec.rb +7 -0
  156. data/spec/core/true/xor_spec.rb +11 -0
  157. data/spec/{core → core_ext}/array/element_reference_spec.rb +0 -0
  158. data/spec/{core → core_ext}/array/equal_value_spec.rb +0 -0
  159. data/spec/{core → core_ext}/array/fill_spec.rb +0 -0
  160. data/spec/{core → core_ext}/array/reduce_spec.rb +0 -0
  161. data/spec/core_ext/basic_object/send_spec.rb +3 -3
  162. data/spec/{core → core_ext}/boolean/singleton_class_spec.rb +0 -0
  163. data/spec/{core → core_ext}/boolean/to_json_spec.rb +0 -0
  164. data/spec/core_ext/class/_inherited_spec.rb +3 -3
  165. data/spec/core_ext/class/proc_methods_spec.rb +2 -2
  166. data/spec/core_ext/class/singleton_methods_spec.rb +8 -8
  167. data/spec/core_ext/method_missing_spec.rb +3 -3
  168. data/spec/core_ext/native/method_missing_spec.rb +3 -2
  169. data/spec/core_ext/native/to_native_spec.rb +3 -2
  170. data/spec/{core → core_ext}/nil/to_json_spec.rb +0 -0
  171. data/spec/date.rb +0 -0
  172. data/spec/fileutils.rb +0 -0
  173. data/spec/filters/ancestors.rb +4 -0
  174. data/spec/filters/array_delete.rb +3 -0
  175. data/spec/filters/array_fetch.rb +3 -0
  176. data/spec/filters/array_first.rb +3 -0
  177. data/spec/filters/array_flatten.rb +14 -0
  178. data/spec/filters/array_intersection.rb +5 -0
  179. data/spec/filters/array_join.rb +6 -0
  180. data/spec/filters/array_subclasses.rb +4 -0
  181. data/spec/filters/block_args.rb +3 -0
  182. data/spec/filters/coerce_integer.rb +9 -0
  183. data/spec/filters/frozen.rb +4 -0
  184. data/spec/filters/mocks.rb +3 -0
  185. data/spec/filters/should_receive.rb +4 -0
  186. data/spec/filters/tainted.rb +7 -0
  187. data/spec/fixtures/class.rb +124 -0
  188. data/spec/fixtures/class_variables.rb +0 -0
  189. data/spec/fixtures/constants.rb +0 -0
  190. data/spec/grammar/alias_spec.rb +1 -1
  191. data/spec/grammar/def_spec.rb +1 -0
  192. data/spec/grammar/lvar_spec.rb +1 -2
  193. data/spec/grammar/nth_ref_spec.rb +13 -0
  194. data/spec/grammar/sclass_spec.rb +6 -7
  195. data/spec/grammar/str_spec.rb +4 -4
  196. data/spec/grammar/string_spec.rb +8 -0
  197. data/spec/grammar/xstr_spec.rb +4 -4
  198. data/spec/iconv.rb +0 -0
  199. data/spec/language/alias_spec.rb +140 -3
  200. data/spec/language/and_spec.rb +14 -7
  201. data/spec/language/array_spec.rb +57 -5
  202. data/spec/language/block_spec.rb +466 -49
  203. data/spec/language/break_spec.rb +294 -44
  204. data/spec/language/case_spec.rb +151 -3
  205. data/spec/language/class_spec.rb +196 -0
  206. data/spec/language/class_variable_spec.rb +56 -0
  207. data/spec/language/def_spec.rb +507 -4
  208. data/spec/language/defined_spec.rb +19 -7
  209. data/spec/language/ensure_spec.rb +26 -39
  210. data/spec/language/execution_spec.rb +15 -0
  211. data/spec/language/fixtures/array.rb +11 -0
  212. data/spec/language/fixtures/block.rb +57 -0
  213. data/spec/language/fixtures/break.rb +240 -0
  214. data/spec/language/fixtures/ensure.rb +72 -0
  215. data/spec/language/fixtures/literal_lambda.rb +7 -0
  216. data/spec/language/fixtures/metaclass.rb +33 -0
  217. data/spec/language/fixtures/module.rb +24 -0
  218. data/spec/language/fixtures/next.rb +78 -12
  219. data/spec/language/fixtures/return.rb +118 -0
  220. data/spec/language/fixtures/send.rb +110 -0
  221. data/spec/language/fixtures/send_1.9.rb +22 -0
  222. data/spec/language/fixtures/super.rb +308 -0
  223. data/spec/language/fixtures/variables.rb +58 -0
  224. data/spec/language/fixtures/yield.rb +5 -0
  225. data/spec/language/for_spec.rb +192 -0
  226. data/spec/language/hash_spec.rb +29 -5
  227. data/spec/language/if_spec.rb +90 -9
  228. data/spec/language/literal_lambda_spec.rb +1 -47
  229. data/spec/language/loop_spec.rb +39 -2
  230. data/spec/language/metaclass_spec.rb +151 -5
  231. data/spec/language/module_spec.rb +56 -0
  232. data/spec/language/next_spec.rb +370 -12
  233. data/spec/language/not_spec.rb +55 -0
  234. data/spec/language/numbers_spec.rb +56 -0
  235. data/spec/language/or_spec.rb +31 -3
  236. data/spec/language/order_spec.rb +79 -0
  237. data/spec/language/precedence_spec.rb +483 -0
  238. data/spec/language/proc_spec.rb +249 -21
  239. data/spec/language/redo_spec.rb +67 -0
  240. data/spec/language/rescue_spec.rb +121 -0
  241. data/spec/language/retry_spec.rb +56 -0
  242. data/spec/language/return_spec.rb +281 -0
  243. data/spec/language/send_spec.rb +141 -48
  244. data/spec/language/singleton_class_spec.rb +1 -1
  245. data/spec/language/string_spec.rb +11 -0
  246. data/spec/language/super_spec.rb +213 -133
  247. data/spec/language/symbol_spec.rb +2 -1
  248. data/spec/language/undef_spec.rb +3 -1
  249. data/spec/language/unless_spec.rb +6 -2
  250. data/spec/language/until_spec.rb +102 -3
  251. data/spec/language/variables_spec.rb +1212 -16
  252. data/spec/language/versions/array_1.9.rb +39 -0
  253. data/spec/language/versions/case_1.9.rb +20 -0
  254. data/spec/language/versions/hash_1.9.rb +18 -0
  255. data/spec/language/versions/literal_lambda_1.9.rb +143 -0
  256. data/spec/language/versions/not_1.9.rb +22 -0
  257. data/spec/language/versions/send_1.9.rb +241 -0
  258. data/spec/language/versions/symbol_1.9.rb +15 -0
  259. data/spec/language/versions/variables_1.9.rb +8 -0
  260. data/spec/language/while_spec.rb +70 -5
  261. data/spec/language/yield_spec.rb +32 -6
  262. data/spec/mspec/guards/block_device.rb +0 -0
  263. data/spec/mspec/guards/endian.rb +0 -0
  264. data/spec/mspec/helpers/environment.rb +0 -0
  265. data/spec/mspec/helpers/language_version.rb +0 -0
  266. data/spec/mspec/helpers/tmp.rb +0 -0
  267. data/spec/ospec/filter.rb +32 -0
  268. data/spec/ospec/main.rb.erb +18 -0
  269. data/spec/ospec/phantom.rb +97 -0
  270. data/spec/ospec/runner.rb +95 -0
  271. data/spec/ospec/sprockets.js +40 -0
  272. data/spec/pp.rb +3 -0
  273. data/spec/rbconfig.rb +5 -0
  274. data/spec/spec_helper.rb +53 -26
  275. data/spec/yaml.rb +0 -0
  276. metadata +275 -31
  277. data/config.ru +0 -8
  278. data/lib/opal/processor.rb +0 -47
  279. data/lib/opal/scope.rb +0 -236
  280. data/lib/opal/server.rb +0 -94
  281. data/spec/core/boolean/and_spec.rb +0 -17
  282. data/spec/core/boolean/inspect_spec.rb +0 -9
  283. data/spec/core/boolean/or_spec.rb +0 -17
  284. data/spec/core/boolean/to_s_spec.rb +0 -9
  285. 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
@@ -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
@@ -0,0 +1,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe "NilClass#dup" do
4
+ it "raises a TypeError" do
5
+ lambda { nil.dup }.should raise_error(TypeError)
6
+ end
7
+ end
@@ -1,5 +1,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
1
3
  describe "NilClass#inspect" do
2
4
  it "returns the string 'nil'" do
3
5
  nil.inspect.should == "nil"
4
6
  end
5
- end
7
+ end
@@ -1,5 +1,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
1
3
  describe "NilClass#nil?" do
2
4
  it "returns true" do
3
5
  nil.nil?.should == true
4
6
  end
5
- end
7
+ end
@@ -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
@@ -1,5 +1,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
1
3
  describe "NilClass#to_a" do
2
4
  it "returns an empty array" do
3
5
  nil.to_a.should == []
4
6
  end
5
- end
7
+ end
@@ -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
@@ -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
@@ -1,5 +1,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
1
3
  describe "NilClass#to_s" do
2
4
  it "returns the string ''" do
3
5
  nil.to_s.should == ""
4
6
  end
5
- end
7
+ end
@@ -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,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe "TrueClass#inspect" do
4
+ it "returns the string 'true'" do
5
+ true.inspect.should == "true"
6
+ end
7
+ 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,7 @@
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
+
3
+ describe "TrueClass#to_s" do
4
+ it "returns the string 'true'" do
5
+ true.to_s.should == "true"
6
+ end
7
+ 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
@@ -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 eq(:bar)
22
- BasicObjectSendSpec.new.__send__(:pow).should eq('called_pow')
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 eq([1, 2, 3])
26
+ BasicObjectSendSpec::Subclass.new.__send__(:blah, 1, 2, 3).should == [1, 2, 3]
27
27
  end
28
28
  end
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 eq([])
29
- ClassInheritedSpecs::A.get_inherited_classes.should eq([ClassInheritedSpecs::B, ClassInheritedSpecs::C])
30
- ClassInheritedSpecs::C.get_inherited_classes.should eq([ClassInheritedSpecs::D])
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 eq(:foo)
21
- ClassProcMethodsSpec::C[nil].should eq(:foo)
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 eq(:foo)
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 eq(:foo)
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 eq(:bar)
32
- ClassSingletonSpecs::B.bar.should eq(:baz)
33
- ClassSingletonSpecs::C.bar.should eq(:baz)
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 eq(:kapow)
38
- ClassSingletonSpecs::B.woosh.should eq(:kapow)
39
- ClassSingletonSpecs::C.woosh.should eq(:kapow)
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 eq([:foo, []])
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 eq([:bar, [1, 2, 3]])
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 eq([:baz, proc])
33
+ obj.baz(1, 2, &proc).should == [:baz, proc]
34
34
  end
35
35
  end
36
36
 
@@ -1,7 +1,8 @@
1
- require "spec_helper"
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 eq("ADAM")
6
+ NativeSpecs.new("adam").toUpperCase.should == "ADAM"
6
7
  end
7
8
  end
@@ -1,7 +1,8 @@
1
- require "spec_helper"
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 eq(:foo)
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
@@ -0,0 +1,4 @@
1
+ opal_filter "Module#ancestors" do
2
+ fails "Array includes Enumerable"
3
+ end
4
+
@@ -0,0 +1,3 @@
1
+ opal_filter "Array#delete accepting blocks" do
2
+ fails "Array#delete may be given a block that is executed if no element matches object"
3
+ end
@@ -0,0 +1,3 @@
1
+ opal_filter "Array#fetch" do
2
+ fails "Array#fetch gives precedence to the default block over the default argument"
3
+ end
@@ -0,0 +1,3 @@
1
+ opal_filter "Array#first" do
2
+ fails "Array#first raises an ArgumentError when count is negative"
3
+ end