opal 0.11.0.rc1 → 0.11.0

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 (493) hide show
  1. checksums.yaml +4 -4
  2. data/.jshintrc +1 -1
  3. data/.travis.yml +14 -2
  4. data/CHANGELOG.md +30 -5
  5. data/HACKING.md +2 -2
  6. data/README.md +4 -5
  7. data/appveyor.yml +3 -4
  8. data/bin +1 -0
  9. data/docs/headless_chrome.md +105 -0
  10. data/docs/rspec.md +2 -19
  11. data/{bin → exe}/opal +0 -0
  12. data/{bin → exe}/opal-build +0 -0
  13. data/{bin → exe}/opal-mspec +0 -0
  14. data/{bin → exe}/opal-repl +0 -0
  15. data/lib/opal.rb +1 -0
  16. data/lib/opal/ast/builder.rb +0 -4
  17. data/lib/opal/builder.rb +69 -15
  18. data/lib/opal/builder_processors.rb +8 -7
  19. data/lib/opal/cli.rb +1 -1
  20. data/lib/opal/cli_options.rb +1 -1
  21. data/lib/opal/cli_runners.rb +1 -1
  22. data/lib/opal/cli_runners/applescript.rb +0 -1
  23. data/lib/opal/cli_runners/chrome.js +135 -0
  24. data/lib/opal/cli_runners/chrome.rb +100 -0
  25. data/lib/opal/cli_runners/nashorn.rb +0 -1
  26. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface +1 -0
  27. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE +18 -0
  28. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md +843 -0
  29. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js +326 -0
  30. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/chrome-remote-interface.js +11 -0
  31. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/index.js +39 -0
  32. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/api.js +84 -0
  33. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/chrome.js +289 -0
  34. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/defaults.js +4 -0
  35. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/devtools.js +245 -0
  36. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/external-request.js +23 -0
  37. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/protocol.json +13303 -0
  38. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +32 -0
  39. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json +128 -0
  40. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js +55 -0
  41. data/lib/opal/cli_runners/node_modules/commander/Readme.md +195 -0
  42. data/lib/opal/cli_runners/node_modules/commander/index.js +851 -0
  43. data/lib/opal/cli_runners/node_modules/commander/package.json +92 -0
  44. data/lib/opal/cli_runners/node_modules/ultron/LICENSE +22 -0
  45. data/lib/opal/cli_runners/node_modules/ultron/index.js +138 -0
  46. data/lib/opal/cli_runners/node_modules/ultron/package.json +112 -0
  47. data/lib/opal/cli_runners/node_modules/ws/LICENSE +21 -0
  48. data/lib/opal/cli_runners/node_modules/ws/README.md +259 -0
  49. data/lib/opal/cli_runners/node_modules/ws/SECURITY.md +33 -0
  50. data/lib/opal/cli_runners/node_modules/ws/index.js +15 -0
  51. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js +56 -0
  52. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js +15 -0
  53. data/lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js +28 -0
  54. data/lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js +158 -0
  55. data/lib/opal/cli_runners/node_modules/ws/lib/Extensions.js +69 -0
  56. data/lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js +339 -0
  57. data/lib/opal/cli_runners/node_modules/ws/lib/Receiver.js +520 -0
  58. data/lib/opal/cli_runners/node_modules/ws/lib/Sender.js +438 -0
  59. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js +9 -0
  60. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.js +17 -0
  61. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js +705 -0
  62. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js +336 -0
  63. data/lib/opal/cli_runners/node_modules/ws/package.json +122 -0
  64. data/lib/opal/cli_runners/nodejs.rb +0 -1
  65. data/lib/opal/cli_runners/package.json +5 -0
  66. data/lib/opal/cli_runners/server.rb +0 -1
  67. data/lib/opal/compiler.rb +8 -18
  68. data/lib/opal/deprecations.rb +1 -1
  69. data/lib/opal/eof_content.rb +36 -0
  70. data/lib/opal/nodes.rb +0 -1
  71. data/lib/opal/nodes/args/kwarg.rb +8 -6
  72. data/lib/opal/nodes/args/kwoptarg.rb +12 -6
  73. data/lib/opal/nodes/call.rb +3 -2
  74. data/lib/opal/nodes/call_special.rb +10 -1
  75. data/lib/opal/nodes/definitions.rb +5 -3
  76. data/lib/opal/nodes/helpers.rb +4 -8
  77. data/lib/opal/nodes/literal.rb +13 -1
  78. data/lib/opal/nodes/logic.rb +19 -32
  79. data/lib/opal/nodes/node_with_args.rb +1 -1
  80. data/lib/opal/nodes/scope.rb +1 -0
  81. data/lib/opal/nodes/super.rb +0 -4
  82. data/lib/opal/nodes/variables.rb +11 -0
  83. data/lib/opal/parser.rb +24 -19
  84. data/lib/opal/path_reader.rb +17 -4
  85. data/lib/opal/rewriter.rb +5 -1
  86. data/lib/opal/rewriters/base.rb +37 -34
  87. data/lib/opal/rewriters/binary_operator_assignment.rb +0 -3
  88. data/lib/opal/rewriters/for_rewriter.rb +93 -0
  89. data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +58 -0
  90. data/lib/opal/rewriters/js_reserved_words.rb +5 -8
  91. data/lib/opal/rewriters/logical_operator_assignment.rb +0 -1
  92. data/lib/opal/simple_server.rb +1 -0
  93. data/lib/opal/util.rb +1 -1
  94. data/lib/opal/version.rb +1 -1
  95. data/opal.gemspec +32 -30
  96. data/opal/corelib/array.rb +53 -30
  97. data/opal/corelib/boolean.rb +11 -3
  98. data/opal/corelib/comparable.rb +16 -0
  99. data/opal/corelib/constants.rb +3 -3
  100. data/opal/corelib/enumerable.rb +48 -1
  101. data/opal/corelib/file.rb +54 -11
  102. data/opal/corelib/hash.rb +98 -0
  103. data/opal/corelib/io.rb +2 -2
  104. data/opal/corelib/kernel.rb +28 -11
  105. data/opal/corelib/marshal/read_buffer.rb +288 -150
  106. data/opal/corelib/marshal/write_buffer.rb +27 -2
  107. data/opal/corelib/nil.rb +11 -3
  108. data/opal/corelib/number.rb +90 -20
  109. data/opal/corelib/numeric.rb +3 -3
  110. data/opal/corelib/random.rb +1 -1
  111. data/opal/corelib/range.rb +22 -22
  112. data/opal/corelib/regexp.rb +45 -4
  113. data/opal/corelib/runtime.js +25 -9
  114. data/opal/corelib/string.rb +1 -1
  115. data/opal/corelib/string/encoding.rb +21 -29
  116. data/opal/corelib/string/inheritance.rb +1 -1
  117. data/opal/corelib/struct.rb +0 -5
  118. data/opal/corelib/time.rb +1 -1
  119. data/stdlib/buffer/array.rb +4 -2
  120. data/stdlib/date.rb +46 -12
  121. data/stdlib/headless_chrome.rb +11 -0
  122. data/stdlib/nodejs/file.rb +36 -11
  123. data/stdlib/nodejs/io.rb +8 -0
  124. data/stdlib/nodejs/stacktrace.rb +116 -100
  125. data/stdlib/opal-builder.rb +1 -0
  126. data/stdlib/opal-platform.rb +6 -6
  127. data/stdlib/opal/platform.rb +2 -2
  128. data/stdlib/rbconfig.rb +1 -1
  129. data/stdlib/securerandom.rb +1 -1
  130. data/tasks/testing.rake +58 -26
  131. data/tasks/testing/opal_rspec_smoketest.Gemfile +5 -12
  132. metadata +64 -733
  133. data/lib/opal/cli_runners/phantom.js +0 -69
  134. data/lib/opal/cli_runners/phantomjs.rb +0 -29
  135. data/lib/opal/hike_path_finder.rb +0 -19
  136. data/lib/opal/nodes/for.rb +0 -75
  137. data/spec/README.md +0 -10
  138. data/spec/filters/bugs/array.rb +0 -16
  139. data/spec/filters/bugs/basicobject.rb +0 -13
  140. data/spec/filters/bugs/bigdecimal.rb +0 -146
  141. data/spec/filters/bugs/class.rb +0 -11
  142. data/spec/filters/bugs/comparable.rb +0 -5
  143. data/spec/filters/bugs/complex.rb +0 -3
  144. data/spec/filters/bugs/date.rb +0 -94
  145. data/spec/filters/bugs/enumerable.rb +0 -43
  146. data/spec/filters/bugs/enumerator.rb +0 -40
  147. data/spec/filters/bugs/exception.rb +0 -72
  148. data/spec/filters/bugs/file.rb +0 -8
  149. data/spec/filters/bugs/float.rb +0 -39
  150. data/spec/filters/bugs/hash.rb +0 -15
  151. data/spec/filters/bugs/inheritance.rb +0 -5
  152. data/spec/filters/bugs/integer.rb +0 -30
  153. data/spec/filters/bugs/io.rb +0 -8
  154. data/spec/filters/bugs/kernel.rb +0 -168
  155. data/spec/filters/bugs/language.rb +0 -190
  156. data/spec/filters/bugs/marshal.rb +0 -41
  157. data/spec/filters/bugs/method.rb +0 -60
  158. data/spec/filters/bugs/module.rb +0 -158
  159. data/spec/filters/bugs/numeric.rb +0 -8
  160. data/spec/filters/bugs/pathname.rb +0 -7
  161. data/spec/filters/bugs/proc.rb +0 -37
  162. data/spec/filters/bugs/random.rb +0 -7
  163. data/spec/filters/bugs/range.rb +0 -36
  164. data/spec/filters/bugs/rational.rb +0 -4
  165. data/spec/filters/bugs/regexp.rb +0 -158
  166. data/spec/filters/bugs/set.rb +0 -41
  167. data/spec/filters/bugs/singleton.rb +0 -6
  168. data/spec/filters/bugs/string.rb +0 -98
  169. data/spec/filters/bugs/stringscanner.rb +0 -71
  170. data/spec/filters/bugs/struct.rb +0 -4
  171. data/spec/filters/bugs/time.rb +0 -35
  172. data/spec/filters/bugs/unboundmethod.rb +0 -17
  173. data/spec/filters/unsupported/array.rb +0 -167
  174. data/spec/filters/unsupported/basicobject.rb +0 -14
  175. data/spec/filters/unsupported/bignum.rb +0 -55
  176. data/spec/filters/unsupported/class.rb +0 -4
  177. data/spec/filters/unsupported/delegator.rb +0 -5
  178. data/spec/filters/unsupported/enumerable.rb +0 -11
  179. data/spec/filters/unsupported/enumerator.rb +0 -13
  180. data/spec/filters/unsupported/file.rb +0 -4
  181. data/spec/filters/unsupported/fixnum.rb +0 -14
  182. data/spec/filters/unsupported/float.rb +0 -46
  183. data/spec/filters/unsupported/freeze.rb +0 -75
  184. data/spec/filters/unsupported/hash.rb +0 -43
  185. data/spec/filters/unsupported/integer.rb +0 -3
  186. data/spec/filters/unsupported/kernel.rb +0 -32
  187. data/spec/filters/unsupported/language.rb +0 -22
  188. data/spec/filters/unsupported/marshal.rb +0 -46
  189. data/spec/filters/unsupported/matchdata.rb +0 -33
  190. data/spec/filters/unsupported/math.rb +0 -3
  191. data/spec/filters/unsupported/pathname.rb +0 -3
  192. data/spec/filters/unsupported/privacy.rb +0 -279
  193. data/spec/filters/unsupported/proc.rb +0 -3
  194. data/spec/filters/unsupported/random.rb +0 -4
  195. data/spec/filters/unsupported/range.rb +0 -7
  196. data/spec/filters/unsupported/regexp.rb +0 -69
  197. data/spec/filters/unsupported/set.rb +0 -4
  198. data/spec/filters/unsupported/singleton.rb +0 -6
  199. data/spec/filters/unsupported/string.rb +0 -546
  200. data/spec/filters/unsupported/struct.rb +0 -6
  201. data/spec/filters/unsupported/symbol.rb +0 -20
  202. data/spec/filters/unsupported/taint.rb +0 -30
  203. data/spec/filters/unsupported/thread.rb +0 -7
  204. data/spec/filters/unsupported/time.rb +0 -202
  205. data/spec/lib/builder_processors_spec.rb +0 -27
  206. data/spec/lib/builder_spec.rb +0 -89
  207. data/spec/lib/cli_runners/phantomjs_spec.rb +0 -39
  208. data/spec/lib/cli_spec.rb +0 -240
  209. data/spec/lib/compiler/call_spec.rb +0 -732
  210. data/spec/lib/compiler_spec.rb +0 -294
  211. data/spec/lib/config_spec.rb +0 -110
  212. data/spec/lib/dependency_resolver_spec.rb +0 -40
  213. data/spec/lib/deprecations_spec.rb +0 -16
  214. data/spec/lib/fixtures/complex_sprockets.js.rb.erb +0 -4
  215. data/spec/lib/fixtures/file_with_directives.js +0 -2
  216. data/spec/lib/fixtures/jst_file.js.jst +0 -1
  217. data/spec/lib/fixtures/no_requires.rb +0 -1
  218. data/spec/lib/fixtures/opal_file.rb +0 -2
  219. data/spec/lib/fixtures/require_tree_test.rb +0 -3
  220. data/spec/lib/fixtures/required_file.js +0 -1
  221. data/spec/lib/fixtures/required_tree_test/required_file1.rb +0 -1
  222. data/spec/lib/fixtures/required_tree_test/required_file2.rb +0 -1
  223. data/spec/lib/fixtures/requires.rb +0 -7
  224. data/spec/lib/fixtures/source_location_test.rb +0 -7
  225. data/spec/lib/fixtures/source_map.rb +0 -1
  226. data/spec/lib/fixtures/source_map/subfolder/other_file.rb +0 -1
  227. data/spec/lib/fixtures/sprockets_file.js.rb +0 -3
  228. data/spec/lib/fixtures/sprockets_require_tree_test.rb +0 -3
  229. data/spec/lib/hike_path_finder_spec.rb +0 -23
  230. data/spec/lib/path_reader_spec.rb +0 -36
  231. data/spec/lib/paths_spec.rb +0 -18
  232. data/spec/lib/rewriters/binary_operator_assignment_spec.rb +0 -151
  233. data/spec/lib/rewriters/block_to_iter_spec.rb +0 -28
  234. data/spec/lib/rewriters/dot_js_syntax_spec.rb +0 -108
  235. data/spec/lib/rewriters/explicit_writer_return_spec.rb +0 -186
  236. data/spec/lib/rewriters/js_reserved_words_spec.rb +0 -116
  237. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +0 -202
  238. data/spec/lib/rewriters/opal_engine_check_spec.rb +0 -82
  239. data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +0 -53
  240. data/spec/lib/shared/path_finder_shared.rb +0 -19
  241. data/spec/lib/shared/path_reader_shared.rb +0 -31
  242. data/spec/lib/simple_server_spec.rb +0 -54
  243. data/spec/lib/spec_helper.rb +0 -100
  244. data/spec/mspec-opal/formatters.rb +0 -236
  245. data/spec/mspec-opal/runner.rb +0 -173
  246. data/spec/opal/compiler/irb_spec.rb +0 -44
  247. data/spec/opal/core/arity_spec.rb +0 -142
  248. data/spec/opal/core/array/intersection_spec.rb +0 -38
  249. data/spec/opal/core/array/minus_spec.rb +0 -38
  250. data/spec/opal/core/array/select_spec.rb +0 -14
  251. data/spec/opal/core/array/set_range_to_array_spec.rb +0 -7
  252. data/spec/opal/core/array/union_spec.rb +0 -38
  253. data/spec/opal/core/array/uniq_spec.rb +0 -49
  254. data/spec/opal/core/date_spec.rb +0 -191
  255. data/spec/opal/core/enumerable/all_break_spec.rb +0 -5
  256. data/spec/opal/core/enumerable/any_break_spec.rb +0 -5
  257. data/spec/opal/core/enumerable/collect_break_spec.rb +0 -13
  258. data/spec/opal/core/enumerable/count_break_spec.rb +0 -5
  259. data/spec/opal/core/enumerable/detect_break_spec.rb +0 -5
  260. data/spec/opal/core/enumerable/drop_while_break_spec.rb +0 -5
  261. data/spec/opal/core/enumerable/each_slice_break.rb +0 -6
  262. data/spec/opal/core/enumerable/each_with_index_break_spec.rb +0 -5
  263. data/spec/opal/core/enumerable/each_with_object_break_spec.rb +0 -5
  264. data/spec/opal/core/enumerable/find_all_break_spec.rb +0 -5
  265. data/spec/opal/core/enumerable/find_index_break_spec.rb +0 -5
  266. data/spec/opal/core/enumerable/grep_break_spec.rb +0 -5
  267. data/spec/opal/core/enumerable/max_break_spec.rb +0 -5
  268. data/spec/opal/core/enumerable/max_by_break_spec.rb +0 -5
  269. data/spec/opal/core/enumerable/min_break_spec.rb +0 -5
  270. data/spec/opal/core/enumerable/min_by_break_spec.rb +0 -5
  271. data/spec/opal/core/enumerable/none_break_spec.rb +0 -5
  272. data/spec/opal/core/enumerable/one_break_spec.rb +0 -5
  273. data/spec/opal/core/enumerable/reduce_break_spec.rb +0 -5
  274. data/spec/opal/core/enumerable/take_while_break_spec.rb +0 -5
  275. data/spec/opal/core/enumerator/with_index_spec.rb +0 -6
  276. data/spec/opal/core/exception_spec.rb +0 -30
  277. data/spec/opal/core/fixtures/class.rb +0 -124
  278. data/spec/opal/core/fixtures/class_variables.rb +0 -0
  279. data/spec/opal/core/fixtures/constants.rb +0 -33
  280. data/spec/opal/core/fixtures/require_tree_files/file 1.rb +0 -1
  281. data/spec/opal/core/fixtures/require_tree_files/file 2.rb +0 -1
  282. data/spec/opal/core/fixtures/require_tree_files/file 3.rb +0 -1
  283. data/spec/opal/core/fixtures/require_tree_files/file 4.rb +0 -1
  284. data/spec/opal/core/fixtures/require_tree_files/file 5.rb +0 -1
  285. data/spec/opal/core/fixtures/require_tree_files/nested/nested 1.rb +0 -1
  286. data/spec/opal/core/fixtures/require_tree_files/nested/nested 2.rb +0 -1
  287. data/spec/opal/core/fixtures/require_tree_files/other/other 1.rb +0 -1
  288. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +0 -1
  289. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +0 -1
  290. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +0 -1
  291. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +0 -3
  292. data/spec/opal/core/hash/has_value_spec.rb +0 -13
  293. data/spec/opal/core/hash/internals_spec.rb +0 -332
  294. data/spec/opal/core/helpers_spec.rb +0 -14
  295. data/spec/opal/core/kernel/Array_spec.rb +0 -10
  296. data/spec/opal/core/kernel/at_exit_spec.rb +0 -70
  297. data/spec/opal/core/kernel/block_given_spec.rb +0 -30
  298. data/spec/opal/core/kernel/class_spec.rb +0 -6
  299. data/spec/opal/core/kernel/define_singleton_method_spec.rb +0 -21
  300. data/spec/opal/core/kernel/equal_value_spec.rb +0 -12
  301. data/spec/opal/core/kernel/extend_spec.rb +0 -21
  302. data/spec/opal/core/kernel/format_spec.rb +0 -122
  303. data/spec/opal/core/kernel/freeze_spec.rb +0 -15
  304. data/spec/opal/core/kernel/instance_eval_spec.rb +0 -28
  305. data/spec/opal/core/kernel/instance_variable_defined_spec.rb +0 -15
  306. data/spec/opal/core/kernel/instance_variable_get_spec.rb +0 -14
  307. data/spec/opal/core/kernel/instance_variable_set_spec.rb +0 -10
  308. data/spec/opal/core/kernel/instance_variables_spec.rb +0 -110
  309. data/spec/opal/core/kernel/loop_spec.rb +0 -23
  310. data/spec/opal/core/kernel/match_spec.rb +0 -5
  311. data/spec/opal/core/kernel/method_spec.rb +0 -31
  312. data/spec/opal/core/kernel/methods_spec.rb +0 -25
  313. data/spec/opal/core/kernel/nil_spec.rb +0 -7
  314. data/spec/opal/core/kernel/p_spec.rb +0 -15
  315. data/spec/opal/core/kernel/printf_spec.rb +0 -11
  316. data/spec/opal/core/kernel/proc_spec.rb +0 -13
  317. data/spec/opal/core/kernel/raise_spec.rb +0 -13
  318. data/spec/opal/core/kernel/rand_spec.rb +0 -19
  319. data/spec/opal/core/kernel/require_tree_spec.rb +0 -18
  320. data/spec/opal/core/kernel/respond_to_spec.rb +0 -44
  321. data/spec/opal/core/kernel/send_spec.rb +0 -56
  322. data/spec/opal/core/kernel/sprintf_spec.rb +0 -5
  323. data/spec/opal/core/language/arguments/mlhs_arg_spec.rb +0 -19
  324. data/spec/opal/core/language/class_spec.rb +0 -55
  325. data/spec/opal/core/language/constant_lookup_spec.rb +0 -38
  326. data/spec/opal/core/language/equal_spec.rb +0 -8
  327. data/spec/opal/core/language/fixtures/array.rb +0 -11
  328. data/spec/opal/core/language/fixtures/block.rb +0 -57
  329. data/spec/opal/core/language/fixtures/break.rb +0 -240
  330. data/spec/opal/core/language/fixtures/ensure.rb +0 -72
  331. data/spec/opal/core/language/fixtures/literal_lambda.rb +0 -7
  332. data/spec/opal/core/language/fixtures/metaclass.rb +0 -33
  333. data/spec/opal/core/language/fixtures/module.rb +0 -24
  334. data/spec/opal/core/language/fixtures/next.rb +0 -128
  335. data/spec/opal/core/language/fixtures/return.rb +0 -118
  336. data/spec/opal/core/language/fixtures/send.rb +0 -111
  337. data/spec/opal/core/language/fixtures/send_1.9.rb +0 -22
  338. data/spec/opal/core/language/fixtures/super.rb +0 -308
  339. data/spec/opal/core/language/fixtures/variables.rb +0 -58
  340. data/spec/opal/core/language/fixtures/yield.rb +0 -28
  341. data/spec/opal/core/language/heredoc_spec.rb +0 -42
  342. data/spec/opal/core/language/keyword_arguments_spec.rb +0 -11
  343. data/spec/opal/core/language/predefined_spec.rb +0 -138
  344. data/spec/opal/core/language/regexp_spec.rb +0 -20
  345. data/spec/opal/core/language/rescue_spec.rb +0 -18
  346. data/spec/opal/core/language/safe_navigator_spec.rb +0 -7
  347. data/spec/opal/core/language/send_spec.rb +0 -222
  348. data/spec/opal/core/language/string_spec.rb +0 -44
  349. data/spec/opal/core/language/ternary_operator_spec.rb +0 -20
  350. data/spec/opal/core/language/versions/array_1.9.rb +0 -39
  351. data/spec/opal/core/language/versions/block_1.9.rb +0 -0
  352. data/spec/opal/core/language/versions/break_1.9.rb +0 -0
  353. data/spec/opal/core/language/versions/case_1.9.rb +0 -20
  354. data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -58
  355. data/spec/opal/core/language/versions/hash_1_9_spec.rb +0 -23
  356. data/spec/opal/core/language/versions/literal_lambda_1.9.rb +0 -143
  357. data/spec/opal/core/language/versions/not_1.9.rb +0 -22
  358. data/spec/opal/core/language/versions/send_1.9.rb +0 -241
  359. data/spec/opal/core/language/versions/symbol_1.9.rb +0 -15
  360. data/spec/opal/core/language/versions/variables_1.9.rb +0 -8
  361. data/spec/opal/core/language_spec.rb +0 -77
  362. data/spec/opal/core/marshal/dump_spec.rb +0 -53
  363. data/spec/opal/core/marshal/load_spec.rb +0 -7
  364. data/spec/opal/core/method/to_proc_spec.rb +0 -28
  365. data/spec/opal/core/module/alias_method_spec.rb +0 -28
  366. data/spec/opal/core/module/ancestors_spec.rb +0 -11
  367. data/spec/opal/core/module/append_features_spec.rb +0 -14
  368. data/spec/opal/core/module/attr_accessor_spec.rb +0 -26
  369. data/spec/opal/core/module/const_defined_spec.rb +0 -84
  370. data/spec/opal/core/module/const_get_spec.rb +0 -85
  371. data/spec/opal/core/module/const_missing_spec.rb +0 -17
  372. data/spec/opal/core/module/const_set_spec.rb +0 -64
  373. data/spec/opal/core/module/constants_spec.rb +0 -49
  374. data/spec/opal/core/module/fixtures/classes.rb +0 -444
  375. data/spec/opal/core/module/method_defined_spec.rb +0 -48
  376. data/spec/opal/core/module/method_lookup_spec.rb +0 -13
  377. data/spec/opal/core/module/module_function_spec.rb +0 -25
  378. data/spec/opal/core/module/name_spec.rb +0 -41
  379. data/spec/opal/core/module/public_method_defined_spec.rb +0 -18
  380. data/spec/opal/core/module/remove_const_spec.rb +0 -22
  381. data/spec/opal/core/module/undef_method_spec.rb +0 -66
  382. data/spec/opal/core/numeric/bit_and_spec.rb +0 -7
  383. data/spec/opal/core/numeric/bit_or_spec.rb +0 -8
  384. data/spec/opal/core/numeric/bit_xor_spec.rb +0 -6
  385. data/spec/opal/core/numeric/ceil_spec.rb +0 -8
  386. data/spec/opal/core/numeric/chr_spec.rb +0 -8
  387. data/spec/opal/core/numeric/comparison_spec.rb +0 -24
  388. data/spec/opal/core/numeric/complement_spec.rb +0 -8
  389. data/spec/opal/core/numeric/divide_spec.rb +0 -10
  390. data/spec/opal/core/numeric/eql_spec.rb +0 -9
  391. data/spec/opal/core/numeric/exponent_spec.rb +0 -33
  392. data/spec/opal/core/numeric/floor_spec.rb +0 -8
  393. data/spec/opal/core/numeric/gt_spec.rb +0 -11
  394. data/spec/opal/core/numeric/gte_spec.rb +0 -12
  395. data/spec/opal/core/numeric/integer_spec.rb +0 -9
  396. data/spec/opal/core/numeric/left_shift_spec.rb +0 -21
  397. data/spec/opal/core/numeric/lt_spec.rb +0 -11
  398. data/spec/opal/core/numeric/lte_spec.rb +0 -12
  399. data/spec/opal/core/numeric/minus_spec.rb +0 -8
  400. data/spec/opal/core/numeric/modulo_spec.rb +0 -19
  401. data/spec/opal/core/numeric/multiply_spec.rb +0 -9
  402. data/spec/opal/core/numeric/next_spec.rb +0 -9
  403. data/spec/opal/core/numeric/ord_spec.rb +0 -9
  404. data/spec/opal/core/numeric/plus_spec.rb +0 -8
  405. data/spec/opal/core/numeric/pred_spec.rb +0 -7
  406. data/spec/opal/core/numeric/right_shift_spec.rb +0 -25
  407. data/spec/opal/core/numeric/step_spec.rb +0 -11
  408. data/spec/opal/core/numeric/succ_spec.rb +0 -9
  409. data/spec/opal/core/numeric/times_spec.rb +0 -36
  410. data/spec/opal/core/numeric/to_f_spec.rb +0 -7
  411. data/spec/opal/core/numeric/to_i_spec.rb +0 -7
  412. data/spec/opal/core/numeric/to_json_spec.rb +0 -8
  413. data/spec/opal/core/numeric/to_s_spec.rb +0 -26
  414. data/spec/opal/core/numeric/uminus_spec.rb +0 -9
  415. data/spec/opal/core/numeric/upto_spec.rb +0 -19
  416. data/spec/opal/core/numeric/zero_spec.rb +0 -7
  417. data/spec/opal/core/object_id_spec.rb +0 -56
  418. data/spec/opal/core/proc/call_spec.rb +0 -21
  419. data/spec/opal/core/proc/element_reference_spec.rb +0 -21
  420. data/spec/opal/core/proc/proc_tricks_spec.rb +0 -7
  421. data/spec/opal/core/runtime/begin_spec.rb +0 -39
  422. data/spec/opal/core/runtime/block_spec.rb +0 -23
  423. data/spec/opal/core/runtime/bridged_classes_spec.rb +0 -123
  424. data/spec/opal/core/runtime/constants_spec.rb +0 -13
  425. data/spec/opal/core/runtime/donate_spec.rb +0 -53
  426. data/spec/opal/core/runtime/eval_spec.rb +0 -5
  427. data/spec/opal/core/runtime/is_a_spec.rb +0 -36
  428. data/spec/opal/core/runtime/main_methods_spec.rb +0 -27
  429. data/spec/opal/core/runtime/method_missing_spec.rb +0 -68
  430. data/spec/opal/core/runtime/method_spec.rb +0 -31
  431. data/spec/opal/core/runtime/operator_call_spec.rb +0 -13
  432. data/spec/opal/core/runtime/paren_spec.rb +0 -14
  433. data/spec/opal/core/runtime/rescue_spec.rb +0 -106
  434. data/spec/opal/core/runtime/return_spec.rb +0 -38
  435. data/spec/opal/core/runtime/singleton_class_spec.rb +0 -13
  436. data/spec/opal/core/runtime/super_spec.rb +0 -223
  437. data/spec/opal/core/runtime/truthy_spec.rb +0 -63
  438. data/spec/opal/core/runtime/variables_spec.rb +0 -20
  439. data/spec/opal/core/runtime_spec.rb +0 -58
  440. data/spec/opal/core/source_map_spec.rb +0 -49
  441. data/spec/opal/core/string_spec.rb +0 -32
  442. data/spec/opal/core/time_spec.rb +0 -38
  443. data/spec/opal/javascript_api_spec.rb +0 -16
  444. data/spec/opal/stdlib/erb/erb_spec.rb +0 -30
  445. data/spec/opal/stdlib/erb/inline_block.opalerb +0 -3
  446. data/spec/opal/stdlib/erb/quoted.opalerb +0 -1
  447. data/spec/opal/stdlib/erb/simple.opalerb +0 -1
  448. data/spec/opal/stdlib/js_spec.rb +0 -66
  449. data/spec/opal/stdlib/json/ext_spec.rb +0 -48
  450. data/spec/opal/stdlib/json/parse_spec.rb +0 -37
  451. data/spec/opal/stdlib/native/alias_native_spec.rb +0 -27
  452. data/spec/opal/stdlib/native/array_spec.rb +0 -11
  453. data/spec/opal/stdlib/native/each_spec.rb +0 -13
  454. data/spec/opal/stdlib/native/element_reference_spec.rb +0 -16
  455. data/spec/opal/stdlib/native/exposure_spec.rb +0 -33
  456. data/spec/opal/stdlib/native/ext_spec.rb +0 -19
  457. data/spec/opal/stdlib/native/hash_spec.rb +0 -67
  458. data/spec/opal/stdlib/native/initialize_spec.rb +0 -17
  459. data/spec/opal/stdlib/native/method_missing_spec.rb +0 -51
  460. data/spec/opal/stdlib/native/native_alias_spec.rb +0 -19
  461. data/spec/opal/stdlib/native/native_class_spec.rb +0 -18
  462. data/spec/opal/stdlib/native/native_module_spec.rb +0 -13
  463. data/spec/opal/stdlib/native/native_reader_spec.rb +0 -22
  464. data/spec/opal/stdlib/native/native_writer_spec.rb +0 -30
  465. data/spec/opal/stdlib/native/new_spec.rb +0 -92
  466. data/spec/opal/stdlib/native/struct_spec.rb +0 -12
  467. data/spec/opal/stdlib/promise/always_spec.rb +0 -49
  468. data/spec/opal/stdlib/promise/error_spec.rb +0 -15
  469. data/spec/opal/stdlib/promise/rescue_spec.rb +0 -53
  470. data/spec/opal/stdlib/promise/then_spec.rb +0 -79
  471. data/spec/opal/stdlib/promise/trace_spec.rb +0 -51
  472. data/spec/opal/stdlib/promise/value_spec.rb +0 -15
  473. data/spec/opal/stdlib/promise/when_spec.rb +0 -34
  474. data/spec/opal/stdlib/source_map_spec.rb +0 -8
  475. data/spec/opal/stdlib/strscan/scan_spec.rb +0 -11
  476. data/spec/opal/stdlib/template/paths_spec.rb +0 -10
  477. data/spec/opal/stdlib/thread/mutex_spec.rb +0 -40
  478. data/spec/opal/stdlib/thread/thread_queue_spec.rb +0 -32
  479. data/spec/opal/stdlib/thread/thread_spec.rb +0 -60
  480. data/spec/ruby_specs +0 -122
  481. data/spec/spec_helper.rb +0 -27
  482. data/spec/support/match_helpers.rb +0 -57
  483. data/spec/support/mspec_rspec_adapter.rb +0 -33
  484. data/spec/support/rewriters_helper.rb +0 -24
  485. data/stdlib/phantomjs.rb +0 -17
  486. data/tasks/testing/sprockets-phantomjs.js +0 -54
  487. data/test/nodejs/fixtures/hello.rb +0 -1
  488. data/test/nodejs/test_dir.rb +0 -17
  489. data/test/nodejs/test_file.rb +0 -87
  490. data/test/nodejs/test_io.rb +0 -18
  491. data/test/nodejs/test_opal_builder.rb +0 -12
  492. data/test/opal/test_keyword.rb +0 -590
  493. data/test/opal/unsupported_and_bugs.rb +0 -39
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
- require 'native'
3
-
4
- describe Opal::Compiler do
5
- describe "irb parser option" do
6
- it "creates Opal.irb_vars if it does not exist" do
7
- $global["Opal"].irb_vars = nil
8
- eval_js compile("nil", :irb => true)
9
-
10
- ($global["Opal"].irb_vars == nil).should be_false
11
- end
12
-
13
- it "does not create Opal.irb_vars if :irb option not passed" do
14
- $global["Opal"].irb_vars = nil
15
- eval_js compile("nil")
16
-
17
- ($global["Opal"].irb_vars == nil).should be_true
18
- end
19
-
20
- it "sets each s(:lasgn) in the top level onto irb_vars" do
21
- eval_js compile("foo = 42", :irb => true)
22
- $global["Opal"].irb_vars.foo.should == 42
23
- end
24
-
25
- it "gets each s(:lvar) in the top level from irb_vars" do
26
- eval_js compile("foo = 3.142; bar = foo", :irb => true)
27
- $global["Opal"].irb_vars.bar.should == 3.142
28
- end
29
-
30
- it "persists local vars between parses" do
31
- eval_js compile("foo = 'hello world'", :irb => true)
32
- eval_js compile("bar = foo.upcase", :irb => true)
33
- $global["Opal"].irb_vars.bar.should == "HELLO WORLD"
34
- end
35
-
36
- it "can still call top level methods" do
37
- eval_js(compile("to_s", :irb => true)).should == "main"
38
- end
39
-
40
- def compile *args
41
- Opal::Compiler.new(*args).compile
42
- end
43
- end
44
- end
@@ -1,142 +0,0 @@
1
- # This spec has been copied over from rubyspec and modified to avoid the use
2
- # of instance_eval with a String argument and also because some syntaxes are
3
- # not suppoted yet by Opal (e.g. def a(b, *c, d)).
4
-
5
- require 'spec_helper'
6
-
7
- describe "UnboundMethod#arity" do
8
- context "returns zero" do
9
-
10
- def self.evaluate_in_module message, &block
11
- it message do
12
- Module.new do
13
- def self.arity_of(method_name)
14
- instance_method(method_name).arity
15
- end
16
- end.class_eval(&block)
17
- end
18
- end
19
-
20
- evaluate_in_module "for m()" do
21
- arity_of(def m() end).should == 0
22
- end
23
-
24
- evaluate_in_module "for n(&b)" do
25
- arity_of(def n(&b) end).should == 0
26
- end
27
- end
28
-
29
- context "returns positive values," do
30
- evaluate_in_module "the number of args for simple args" do
31
- arity_of(def m(a) end).should == 1
32
- arity_of(def n(a, b) end).should == 2
33
- arity_of(def o(a, b, c) end).should == 3
34
- arity_of(def p(a, b, c, d) end).should == 4
35
- end
36
-
37
- ruby_version_is "2.1" do
38
- evaluate_in_module "1 for kwargs" do
39
- arity_of(def m(a:) end).should == 1
40
- arity_of(def n(a:, b:) end).should == 1
41
- arity_of(def o(a: 1, b:, c:, d: 2) end).should == 1
42
- end
43
-
44
- evaluate_in_module __LINE__ do
45
- arity_of(def m(a, b:) end).should == 2
46
- arity_of(def n(a, b:, &l) end).should == 2
47
- end
48
-
49
- evaluate_in_module __LINE__ do
50
- arity_of(def m(a, b, c:, d: 1) end).should == 3
51
- arity_of(def n(a, b, c:, d: 1, **k, &l) end).should == 3
52
- end
53
- end
54
- end
55
-
56
- context "returns negative values" do
57
- # evaluate_in_module __LINE__ do
58
- # arity_of(def m(a=1) end).should == -1
59
- # arity_of(def n(a=1, b=2) end).should == -1
60
- # end
61
- #
62
- # evaluate_in_module __LINE__ do
63
- # arity_of(def m(a, b=1) end).should == -2
64
- # arity_of(def n(a, b, c=1, d=2) end).should == -3
65
- # end
66
- #
67
- # evaluate_in_module __LINE__ do
68
- # arity_of(def m(a=1, *b) end).should == -1
69
- # arity_of(def n(a=1, b=2, *c) end).should == -1
70
- # end
71
- #
72
- # evaluate_in_module __LINE__ do
73
- # arity_of(def m(*) end).should == -1
74
- # arity_of(def n(*a) end).should == -1
75
- # end
76
- #
77
- # evaluate_in_module __LINE__ do
78
- # arity_of(def m(a, *) end).should == -2
79
- # arity_of(def n(a, *b) end).should == -2
80
- # arity_of(def o(a, b, *c) end).should == -3
81
- # arity_of(def p(a, b, c, *d) end).should == -4
82
- # end
83
- #
84
- # evaluate_in_module __LINE__ do
85
- # arity_of(def m(*a, b) end).should == -2
86
- # arity_of(def n(*a, b, c) end).should == -3
87
- # arity_of(def o(*a, b, c, d) end).should == -4
88
- # end
89
- #
90
- # evaluate_in_module __LINE__ do
91
- # arity_of(def m(a, *b, c) end).should == -3
92
- # arity_of(def n(a, b, *c, d, e) end).should == -5
93
- # end
94
- #
95
- # evaluate_in_module __LINE__ do
96
- # arity_of(def m(a, b=1, c=2, *d, e, f) end).should == -4
97
- # arity_of(def n(a, b, c=1, *d, e, f, g) end).should == -6
98
- # end
99
-
100
- # ruby_version_is "2.1" do
101
- # evaluate_in_module __LINE__ do
102
- # arity_of(def m(a: 1) end).should == -1
103
- # arity_of(def n(a: 1, b: 2) end).should == -1
104
- # end
105
- # end
106
- #
107
- # evaluate_in_module __LINE__ do
108
- # arity_of(def m(a=1, b: 2) end).should == -1
109
- # # arity_of(def n(*a, b: 1) end).should == -1
110
- # arity_of(def o(a=1, b: 2) end).should == -1
111
- # # arity_of(def p(a=1, *b, c: 2, &l) end).should == -1
112
- # end
113
-
114
- ruby_version_is "2.1" do
115
- # evaluate_in_module __LINE__ do
116
- # arity_of(def m(**k, &l) end).should == -1
117
- # arity_of(def n(*a, **k) end).should == -1
118
- # arity_of(def o(a: 1, b: 2, **k) end).should == -1
119
- # end
120
- #
121
- # evaluate_in_module __LINE__ do
122
- # arity_of(def m(a=1, *b, c:, d: 2, **k, &l) end).should == -2
123
- # end
124
- #
125
- # evaluate_in_module __LINE__ do
126
- # arity_of(def m(a, b=1, *c, d, e:, f: 2, **k, &l) end).should == -4
127
- # arity_of(def n(a, b=1, *c, d:, e:, f: 2, **k, &l) end).should == -3
128
- # arity_of(def o(a=0, b=1, *c, d, e:, f: 2, **k, &l) end).should == -3
129
- # arity_of(def p(a=0, b=1, *c, d:, e:, f: 2, **k, &l) end).should == -2
130
- # end
131
- end
132
- end
133
-
134
- # context "for a Method generated by respond_to_missing?" do
135
- # it "returns -1" do
136
- # obj = mock("method arity respond_to_missing")
137
- # obj.should_receive(:respond_to_missing?).and_return(true)
138
- #
139
- # obj.method(:m).unbind.arity.should == -1
140
- # end
141
- # end
142
- end
@@ -1,38 +0,0 @@
1
- describe "Array#&" do
2
- it "relies on Ruby's #hash (not JavaScript's #toString) for identifying array items" do
3
- a1 = [ 123, '123']
4
- a2 = ['123', 123 ]
5
- (a1 & a2).should == a1
6
- (a2 & a1).should == a2
7
-
8
- a1 = [ Time.at(1429521600.1), Time.at(1429521600.9) ]
9
- a2 = [ Time.at(1429521600.9), Time.at(1429521600.1) ]
10
- (a1 & a2).should == a1
11
- (a2 & a1).should == a2
12
-
13
- a1 = [ Object.new, Object.new ]
14
- a2 = [ Object.new, Object.new ]
15
- (a1 & a2).should == []
16
- (a2 & a1).should == []
17
-
18
- a1 = [ 1, 2, 3, '1', '2', '3']
19
- a2 = ['1', '2', '3', 1, 2, 3 ]
20
- (a1 & a2).should == a1
21
- (a2 & a1).should == a2
22
-
23
- a1 = [ [1, 2, 3], '1,2,3']
24
- a2 = ['1,2,3', [1, 2, 3] ]
25
- (a1 & a2).should == a1
26
- (a2 & a1).should == a2
27
-
28
- a1 = [ true, 'true']
29
- a2 = ['true', true ]
30
- (a1 & a2).should == a1
31
- (a2 & a1).should == a2
32
-
33
- a1 = [ false, 'false']
34
- a2 = ['false', false ]
35
- (a1 & a2).should == a1
36
- (a2 & a1).should == a2
37
- end
38
- end
@@ -1,38 +0,0 @@
1
- describe "Array#-" do
2
- it "relies on Ruby's #hash (not JavaScript's #toString) for identifying array items" do
3
- a1 = [ 123 ]
4
- a2 = ['123']
5
- (a1 - a2).should == a1
6
- (a2 - a1).should == a2
7
-
8
- a1 = [ Time.at(1429521600.1) ]
9
- a2 = [ Time.at(1429521600.9) ]
10
- (a1 - a2).should == a1
11
- (a2 - a1).should == a2
12
-
13
- a1 = [ Object.new ]
14
- a2 = [ Object.new ]
15
- (a1 - a2).should == a1
16
- (a2 - a1).should == a2
17
-
18
- a1 = [ 1, 2, 3 ]
19
- a2 = ['1', '2', '3']
20
- (a1 - a2).should == a1
21
- (a2 - a1).should == a2
22
-
23
- a1 = [ 1, 2, 3 ]
24
- a2 = ['1,2,3']
25
- (a1 - a2).should == a1
26
- (a2 - a1).should == a2
27
-
28
- a1 = [ true ]
29
- a2 = ['true']
30
- (a1 - a2).should == a1
31
- (a2 - a1).should == a2
32
-
33
- a1 = [ false ]
34
- a2 = ['false']
35
- (a1 - a2).should == a1
36
- (a2 - a1).should == a2
37
- end
38
- end
@@ -1,14 +0,0 @@
1
- describe "Array#select" do
2
- it "passes an array item into a single default-block parameter" do
3
- [["ABC", "DEF"]].select do |x|
4
- x.should == ["ABC", "DEF"]
5
- end
6
- end
7
-
8
- it "splits an array item into a list of default block parameters" do
9
- [["ABC", "DEF"]].select do |x,y|
10
- x.should == "ABC"
11
- y.should == "DEF"
12
- end
13
- end
14
- end
@@ -1,7 +0,0 @@
1
- describe "Array#[]=" do
2
- it 'expands the array when assigning another array to a range' do
3
- a = ['a']
4
- a[3..4] = ['b', 'c']
5
- a.should == ['a', nil, nil, 'b', 'c']
6
- end
7
- end
@@ -1,38 +0,0 @@
1
- describe "Array#|" do
2
- it "relies on Ruby's #hash (not JavaScript's #toString) for identifying array items" do
3
- a1 = [ 123, '123']
4
- a2 = ['123', 123 ]
5
- (a1 | a2).should == a1
6
- (a2 | a1).should == a2
7
-
8
- a1 = [ Time.at(1429521600.1), Time.at(1429521600.9) ]
9
- a2 = [ Time.at(1429521600.9), Time.at(1429521600.1) ]
10
- (a1 | a2).should == a1
11
- (a2 | a1).should == a2
12
-
13
- a1 = [ Object.new, Object.new ]
14
- a2 = [ Object.new, Object.new ]
15
- (a1 | a2).should == a1 + a2
16
- (a2 | a1).should == a2 + a1
17
-
18
- a1 = [ 1, 2, 3, '1', '2', '3']
19
- a2 = ['1', '2', '3', 1, 2, 3 ]
20
- (a1 | a2).should == a1
21
- (a2 | a1).should == a2
22
-
23
- a1 = [ [1, 2, 3], '1,2,3']
24
- a2 = ['1,2,3', [1, 2, 3] ]
25
- (a1 | a2).should == a1
26
- (a2 | a1).should == a2
27
-
28
- a1 = [ true, 'true']
29
- a2 = ['true', true ]
30
- (a1 | a2).should == a1
31
- (a2 | a1).should == a2
32
-
33
- a1 = [ false, 'false']
34
- a2 = ['false', false ]
35
- (a1 | a2).should == a1
36
- (a2 | a1).should == a2
37
- end
38
- end
@@ -1,49 +0,0 @@
1
- describe "Array#uniq" do
2
- it "relies on Ruby's #hash (not JavaScript's #toString) for identifying array items" do
3
- a = [ 123, '123']
4
- a.uniq.should == a
5
-
6
- a = [ Time.at(1429521600.1), Time.at(1429521600.9) ]
7
- a.uniq.should == a
8
-
9
- a = [ Object.new, Object.new ]
10
- a.uniq.should == a
11
-
12
- a = [ 1, 2, 3, '1', '2', '3']
13
- a.uniq.should == a
14
-
15
- a = [ [1, 2, 3], '1,2,3']
16
- a.uniq.should == a
17
-
18
- a = [ true, 'true']
19
- a.uniq.should == a
20
-
21
- a = [ false, 'false']
22
- a.uniq.should == a
23
- end
24
- end
25
-
26
- describe "Array#uniq!" do
27
- it "relies on Ruby's #hash (not JavaScript's #toString) for identifying array items" do
28
- a = [ 123, '123']
29
- a.uniq!.should == nil
30
-
31
- a = [ Time.at(1429521600.1), Time.at(1429521600.9) ]
32
- a.uniq!.should == nil
33
-
34
- a = [ Object.new, Object.new ]
35
- a.uniq!.should == nil
36
-
37
- a = [ 1, 2, 3, '1', '2', '3']
38
- a.uniq!.should == nil
39
-
40
- a = [ [1, 2, 3], '1,2,3']
41
- a.uniq!.should == nil
42
-
43
- a = [ true, 'true']
44
- a.uniq!.should == nil
45
-
46
- a = [ false, 'false']
47
- a.uniq!.should == nil
48
- end
49
- end
@@ -1,191 +0,0 @@
1
- require 'spec_helper'
2
- require 'date'
3
-
4
- # rubyspec does not have specs for these listed methods
5
- describe Date do
6
- describe ".parse" do
7
- it "parses a date string into a Date instance" do
8
- Date.parse('2013-10-4').should == Date.new(2013, 10, 4)
9
- Date.parse('2013-06-02').should == Date.new(2013, 6, 2)
10
- end
11
-
12
- it "parses date string with month name into a Date instance" do
13
- Date.parse("2013 Jun 02").should == Date.new(2013, 6, 2)
14
- Date.parse("2013 jun 02").should == Date.new(2013, 6, 2)
15
- end
16
- end
17
-
18
- describe "#<" do
19
- it "is true when self is before other" do
20
- (Date.new(2013, 2, 4) < Date.new(2013, 2, 5)).should == true
21
- (Date.new(2013, 2, 4) < Date.new(2014, 7, 6)).should == true
22
- end
23
-
24
- it "is false when self is not before other" do
25
- (Date.new(2013, 2, 4) < Date.new(2013, 2, 4)).should == false
26
- (Date.new(2014, 2, 4) < Date.new(2013, 7, 6)).should == false
27
- end
28
- end
29
-
30
- describe '#<=' do
31
- it "is true when self is before or the same day as other" do
32
- (Date.new(2013, 4, 5) <= Date.new(2013, 4, 5)).should == true
33
- (Date.new(2013, 4, 5) <= Date.new(2013, 4, 9)).should == true
34
- end
35
-
36
- it "is false when self is after other" do
37
- (Date.new(2013, 4, 5) <= Date.new(2013, 4, 2)).should == false
38
- (Date.new(2013, 4, 5) <= Date.new(2013, 2, 5)).should == false
39
- end
40
- end
41
-
42
- describe '<=>' do
43
- it 'returns -1 when self is less than other' do
44
- (Date.new(2015, 1, 1) <=> Date.new(2015, 1, 2)).should == -1
45
- end
46
-
47
- it 'returns 0 when self is equal to other' do
48
- (Date.new(2015, 1, 1) <=> Date.new(2015, 1, 1)).should == 0
49
- end
50
-
51
- it 'returns 1 when self is greater than other' do
52
- (Date.new(2015, 1, 2) <=> Date.new(2015, 1, 1)).should == 1
53
- end
54
-
55
- it 'returns nil when compared to non-Date objects' do
56
- (Date.new <=> nil).should == nil
57
- end
58
- end
59
-
60
- describe "#==" do
61
- it "returns true if self is equal to other date" do
62
- (Date.new(2013, 9, 13) == Date.new(2013, 9, 13)).should == true
63
- end
64
-
65
- it "returns false if self is not equal to other date" do
66
- (Date.new(2013, 10, 2) == Date.new(2013, 10, 11)).should == false
67
- end
68
-
69
- it 'returns false when compared to non-Date objects' do
70
- (Date.new == nil).should == false
71
- (Date.new == Object.new).should == false
72
- end
73
- end
74
-
75
- describe "#clone" do
76
- it "creates a copy of the current date" do
77
- orig = Date.new(2013, 10, 15)
78
- copy = orig.clone
79
-
80
- orig.should == copy
81
- orig.object_id.should_not == copy.object_id
82
- end
83
- end
84
-
85
- describe "#day" do
86
- it "returns the day of the date" do
87
- Date.new(2013, 2, 10).day.should == 10
88
- Date.new(2013, 2, 1).day.should == 1
89
- end
90
- end
91
-
92
- describe "#month" do
93
- it "returns the month of the date" do
94
- Date.new(2013, 1, 23).month.should == 1
95
- Date.new(2013, 12, 2).month.should == 12
96
- end
97
- end
98
-
99
- describe "#next" do
100
- it "returns the next date from self" do
101
- Date.new(2013, 4, 6).next.should == Date.new(2013, 4, 7)
102
- Date.new(2013, 6, 30).next.should == Date.new(2013, 7, 1)
103
- Date.new(2013, 12, 31).next.should == Date.new(2014, 1, 1)
104
- end
105
- end
106
-
107
- describe "#next_month" do
108
- it "returns the date with the next calendar month to self" do
109
- Date.new(2013, 2, 5).next_month.should == Date.new(2013, 3, 5)
110
- Date.new(2013, 5, 31).next_month.should == Date.new(2013, 6, 30)
111
- Date.new(2013, 12, 5).next_month.should == Date.new(2014, 1, 5)
112
- end
113
- end
114
-
115
- describe "#prev_month" do
116
- it "returns the date with the previous calendar month" do
117
- Date.new(2013, 2, 9).prev_month.should == Date.new(2013, 1, 9)
118
- Date.new(2013, 7, 31).prev_month.should == Date.new(2013, 6, 30)
119
- Date.new(2013, 1, 3).prev_month.should == Date.new(2012, 12, 3)
120
- end
121
- end
122
-
123
- describe '#next_day' do
124
- it 'returns a new date the given number of days after self' do
125
- Date.new(2014, 4, 5).next_day.should == Date.new(2014, 4, 6)
126
- Date.new(2014, 4, 5).next_day(4).should == Date.new(2014, 4, 9)
127
- end
128
- end
129
-
130
- describe '#prev_day' do
131
- it 'returns the date the given number of days before self' do
132
- Date.new(2014, 4, 5).prev_day.should == Date.new(2014, 4, 4)
133
- Date.new(2014, 4, 5).prev_day(4).should == Date.new(2014, 4, 1)
134
- end
135
- end
136
-
137
- describe '#succ' do
138
- it 'returns the date after the receiver' do
139
- Date.new(1986, 5, 26).succ.should == Date.new(1986, 5, 27)
140
- end
141
- end
142
-
143
- describe "#to_s" do
144
- it "returns an ISO 8601 representation" do
145
- Date.new(2013, 10, 15).to_s.should == "2013-10-15"
146
- Date.new(2013, 4, 9).to_s.should == "2013-04-09"
147
- end
148
- end
149
-
150
- describe "#wday" do
151
- it "returns the day of the week" do
152
- Date.new(2001, 2, 3).wday.should == 6
153
- Date.new(2001, 2, 4).wday.should == 0
154
- end
155
- end
156
-
157
- describe "#year" do
158
- it "returns the year as an integer" do
159
- Date.new(2013, 2, 9).year.should == 2013
160
- end
161
- end
162
-
163
- it 'correctly reports mondays' do
164
- Date.new(2015, 4, 6).monday?.should be_true
165
- end
166
-
167
- it 'correctly reports tuesdays' do
168
- Date.new(2015, 4, 7).tuesday?.should be_true
169
- end
170
-
171
- it 'correctly reports wednesdays' do
172
- Date.new(2015, 4, 8).wednesday?.should be_true
173
- end
174
-
175
- it 'correctly reports thursdays' do
176
- Date.new(2015, 4, 9).thursday?.should be_true
177
- end
178
-
179
- it 'correctly reports fridays' do
180
- Date.new(2015, 4, 10).friday?.should be_true
181
- end
182
-
183
- it 'correctly reports saturdays' do
184
- Date.new(2015, 4, 11).saturday?.should be_true
185
- end
186
-
187
- it 'correctly reports sundays' do
188
- Date.new(2015, 4, 12).sunday?.should be_true
189
- end
190
-
191
- end