opal 0.11.4 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +42 -10
  3. data/.rubocop.yml +398 -0
  4. data/.rubocop_todo.yml +44 -0
  5. data/.travis.yml +28 -34
  6. data/CHANGELOG.md +363 -142
  7. data/CONTRIBUTING.md +3 -5
  8. data/Gemfile +17 -12
  9. data/Guardfile +0 -1
  10. data/HACKING.md +1 -35
  11. data/LICENSE +2 -2
  12. data/README.md +42 -13
  13. data/Rakefile +1 -4
  14. data/UNRELEASED.md +133 -0
  15. data/benchmark-ips/README.md +6 -0
  16. data/benchmark-ips/bm_block_vs_yield.rb +21 -0
  17. data/benchmark-ips/bm_js_symbols_vs_strings.rb +28 -0
  18. data/benchmark-ips/bm_while_true_vs_loop.rb +19 -0
  19. data/bin/console +14 -0
  20. data/bin/opal +0 -1
  21. data/bin/opal-benchmark-ips +8 -0
  22. data/bin/opal-mspec +9 -1
  23. data/bin/opal-repl +2 -1
  24. data/bin/rake +7 -0
  25. data/bin/setup +8 -0
  26. data/docs/compiled_ruby.md +89 -8
  27. data/docs/compiler.md +3 -20
  28. data/docs/jquery.md +44 -11
  29. data/docs/promises.md +1 -1
  30. data/docs/rails.md +16 -12
  31. data/docs/sinatra.md +15 -8
  32. data/docs/using_sprockets.md +16 -11
  33. data/examples/rack/config.ru +1 -0
  34. data/examples/sinatra/Gemfile +1 -0
  35. data/examples/sinatra/config.ru +2 -11
  36. data/exe/opal-repl +3 -11
  37. data/lib/opal.rb +1 -0
  38. data/lib/opal/ast/builder.rb +4 -1
  39. data/lib/opal/ast/node.rb +1 -0
  40. data/lib/opal/builder.rb +84 -63
  41. data/lib/opal/builder_processors.rb +41 -56
  42. data/lib/opal/cli.rb +33 -49
  43. data/lib/opal/cli_options.rb +27 -17
  44. data/lib/opal/cli_runners.rb +73 -16
  45. data/lib/opal/cli_runners/applescript.rb +4 -4
  46. data/lib/opal/cli_runners/chrome.rb +29 -17
  47. data/lib/opal/cli_runners/nashorn.rb +5 -4
  48. data/lib/opal/cli_runners/nodejs.rb +8 -6
  49. data/lib/opal/cli_runners/server.rb +12 -11
  50. data/lib/opal/compiler.rb +85 -103
  51. data/lib/opal/config.rb +3 -3
  52. data/lib/opal/deprecations.rb +2 -1
  53. data/lib/opal/eof_content.rb +2 -2
  54. data/lib/opal/erb.rb +8 -7
  55. data/lib/opal/errors.rb +72 -1
  56. data/lib/opal/fragment.rb +23 -3
  57. data/lib/opal/hike.rb +305 -0
  58. data/lib/opal/nodes.rb +5 -10
  59. data/lib/opal/nodes/arglist.rb +7 -6
  60. data/lib/opal/nodes/args.rb +36 -0
  61. data/lib/opal/nodes/args/arg.rb +22 -0
  62. data/lib/opal/nodes/args/arity_check.rb +151 -0
  63. data/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb +28 -0
  64. data/lib/opal/nodes/args/extract_block_arg.rb +34 -0
  65. data/lib/opal/nodes/args/extract_kwarg.rb +32 -0
  66. data/lib/opal/nodes/args/extract_kwargs.rb +28 -0
  67. data/lib/opal/nodes/args/extract_kwoptarg.rb +35 -0
  68. data/lib/opal/nodes/args/extract_kwrestarg.rb +35 -0
  69. data/lib/opal/nodes/args/extract_optarg.rb +35 -0
  70. data/lib/opal/nodes/args/extract_post_arg.rb +28 -0
  71. data/lib/opal/nodes/args/extract_post_optarg.rb +41 -0
  72. data/lib/opal/nodes/args/extract_restarg.rb +40 -0
  73. data/lib/opal/nodes/args/fake_arg.rb +26 -0
  74. data/lib/opal/nodes/args/initialize_iterarg.rb +28 -0
  75. data/lib/opal/nodes/args/initialize_shadowarg.rb +24 -0
  76. data/lib/opal/nodes/args/parameters.rb +63 -0
  77. data/lib/opal/nodes/args/prepare_post_args.rb +22 -0
  78. data/lib/opal/nodes/array.rb +9 -8
  79. data/lib/opal/nodes/base.rb +20 -11
  80. data/lib/opal/nodes/call.rb +24 -25
  81. data/lib/opal/nodes/call_special.rb +4 -3
  82. data/lib/opal/nodes/case.rb +24 -26
  83. data/lib/opal/nodes/class.rb +4 -5
  84. data/lib/opal/nodes/constants.rb +8 -7
  85. data/lib/opal/nodes/csend.rb +2 -3
  86. data/lib/opal/nodes/def.rb +28 -74
  87. data/lib/opal/nodes/defined.rb +36 -36
  88. data/lib/opal/nodes/definitions.rb +10 -7
  89. data/lib/opal/nodes/defs.rb +8 -16
  90. data/lib/opal/nodes/hash.rb +5 -4
  91. data/lib/opal/nodes/helpers.rb +8 -8
  92. data/lib/opal/nodes/if.rb +10 -8
  93. data/lib/opal/nodes/iter.rb +16 -103
  94. data/lib/opal/nodes/lambda.rb +18 -0
  95. data/lib/opal/nodes/literal.rb +29 -63
  96. data/lib/opal/nodes/logic.rb +25 -24
  97. data/lib/opal/nodes/masgn.rb +8 -6
  98. data/lib/opal/nodes/module.rb +4 -4
  99. data/lib/opal/nodes/node_with_args.rb +14 -208
  100. data/lib/opal/nodes/rescue.rb +32 -32
  101. data/lib/opal/nodes/runtime_helpers.rb +5 -4
  102. data/lib/opal/nodes/scope.rb +18 -29
  103. data/lib/opal/nodes/singleton_class.rb +3 -3
  104. data/lib/opal/nodes/super.rb +12 -18
  105. data/lib/opal/nodes/top.rb +10 -8
  106. data/lib/opal/nodes/variables.rb +6 -6
  107. data/lib/opal/nodes/while.rb +7 -6
  108. data/lib/opal/nodes/x_string.rb +139 -0
  109. data/lib/opal/nodes/yield.rb +10 -7
  110. data/lib/opal/parser.rb +9 -46
  111. data/lib/opal/parser/default_config.rb +50 -0
  112. data/lib/opal/parser/patch.rb +26 -0
  113. data/lib/opal/parser/source_buffer.rb +11 -0
  114. data/lib/opal/parser/with_c_lexer.rb +14 -0
  115. data/lib/opal/parser/with_ruby_lexer.rb +6 -0
  116. data/lib/opal/path_reader.rb +6 -5
  117. data/lib/opal/paths.rb +9 -6
  118. data/lib/opal/regexp_anchors.rb +6 -5
  119. data/lib/opal/rewriter.rb +7 -0
  120. data/lib/opal/rewriters/arguments.rb +58 -0
  121. data/lib/opal/rewriters/base.rb +32 -12
  122. data/lib/opal/rewriters/binary_operator_assignment.rb +20 -20
  123. data/lib/opal/rewriters/block_to_iter.rb +2 -1
  124. data/lib/opal/rewriters/break_finder.rb +2 -0
  125. data/lib/opal/rewriters/dot_js_syntax.rb +3 -2
  126. data/lib/opal/rewriters/dump_args.rb +28 -0
  127. data/lib/opal/rewriters/explicit_writer_return.rb +4 -3
  128. data/lib/opal/rewriters/for_rewriter.rb +12 -12
  129. data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +2 -1
  130. data/lib/opal/rewriters/inline_args.rb +220 -0
  131. data/lib/opal/rewriters/js_reserved_words.rb +21 -17
  132. data/lib/opal/rewriters/logical_operator_assignment.rb +24 -14
  133. data/lib/opal/rewriters/mlhs_args.rb +128 -0
  134. data/lib/opal/rewriters/opal_engine_check.rb +11 -6
  135. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +3 -2
  136. data/lib/opal/server.rb +1 -0
  137. data/lib/opal/simple_server.rb +15 -23
  138. data/lib/opal/source_map.rb +7 -70
  139. data/lib/opal/source_map/file.rb +199 -0
  140. data/lib/opal/source_map/index.rb +83 -0
  141. data/lib/opal/source_map/map.rb +26 -0
  142. data/lib/opal/source_map/vlq.rb +98 -0
  143. data/lib/opal/util.rb +7 -5
  144. data/lib/opal/version.rb +2 -1
  145. data/lib/tilt/opal.rb +3 -3
  146. data/opal.gemspec +18 -9
  147. data/opal/corelib/array.rb +135 -117
  148. data/opal/corelib/array/pack.rb +446 -0
  149. data/opal/corelib/basic_object.rb +23 -9
  150. data/opal/corelib/boolean.rb +3 -3
  151. data/opal/corelib/class.rb +4 -10
  152. data/opal/corelib/comparable.rb +36 -23
  153. data/opal/corelib/complex.rb +108 -14
  154. data/opal/corelib/constants.rb +4 -4
  155. data/opal/corelib/enumerable.rb +132 -135
  156. data/opal/corelib/enumerator.rb +47 -50
  157. data/opal/corelib/error.rb +65 -8
  158. data/opal/corelib/file.rb +37 -32
  159. data/opal/corelib/hash.rb +90 -21
  160. data/opal/corelib/helpers.rb +7 -6
  161. data/opal/corelib/kernel.rb +53 -586
  162. data/opal/corelib/kernel/format.rb +544 -0
  163. data/opal/corelib/marshal.rb +1 -13
  164. data/opal/corelib/marshal/read_buffer.rb +20 -23
  165. data/opal/corelib/marshal/write_buffer.rb +23 -15
  166. data/opal/corelib/math.rb +12 -16
  167. data/opal/corelib/method.rb +5 -3
  168. data/opal/corelib/module.rb +80 -109
  169. data/opal/corelib/nil.rb +2 -2
  170. data/opal/corelib/number.rb +177 -43
  171. data/opal/corelib/numeric.rb +22 -16
  172. data/opal/corelib/pack_unpack/format_string_parser.rb +135 -0
  173. data/opal/corelib/proc.rb +3 -4
  174. data/opal/corelib/process.rb +1 -1
  175. data/opal/corelib/random.rb +24 -16
  176. data/opal/corelib/random/MersenneTwister.js +137 -0
  177. data/opal/corelib/random/math_random.js.rb +9 -0
  178. data/opal/corelib/random/mersenne_twister.js.rb +13 -0
  179. data/opal/corelib/random/seedrandom.js.rb +12 -0
  180. data/opal/corelib/range.rb +25 -26
  181. data/opal/corelib/rational.rb +57 -17
  182. data/opal/corelib/regexp.rb +39 -43
  183. data/opal/corelib/runtime.js +806 -683
  184. data/opal/corelib/string.rb +213 -112
  185. data/opal/corelib/string/encoding.rb +14 -17
  186. data/opal/corelib/string/unpack.rb +793 -0
  187. data/opal/corelib/struct.rb +40 -24
  188. data/opal/corelib/time.rb +14 -15
  189. data/opal/corelib/unsupported.rb +26 -4
  190. data/opal/opal.rb +2 -1
  191. data/opal/opal/full.rb +2 -0
  192. data/stdlib/base64.rb +1 -1
  193. data/stdlib/bigdecimal.rb +11 -13
  194. data/stdlib/buffer.rb +9 -8
  195. data/stdlib/buffer/array.rb +46 -48
  196. data/stdlib/buffer/view.rb +85 -47
  197. data/stdlib/console.rb +18 -18
  198. data/stdlib/date.rb +85 -66
  199. data/stdlib/delegate.rb +2 -2
  200. data/stdlib/e2mmap.rb +176 -0
  201. data/stdlib/encoding.rb +1 -1
  202. data/stdlib/erb.rb +1 -1
  203. data/stdlib/forwardable.rb +14 -14
  204. data/stdlib/json.rb +1 -2
  205. data/stdlib/logger.rb +112 -0
  206. data/stdlib/math.rb +1 -1
  207. data/stdlib/matrix.rb +2169 -0
  208. data/stdlib/matrix/eigenvalue_decomposition.rb +883 -0
  209. data/stdlib/matrix/lup_decomposition.rb +219 -0
  210. data/stdlib/nashorn/file.rb +7 -9
  211. data/stdlib/native.rb +69 -63
  212. data/stdlib/nodejs.rb +3 -0
  213. data/stdlib/nodejs/dir.rb +25 -4
  214. data/stdlib/nodejs/env.rb +40 -0
  215. data/stdlib/nodejs/file.rb +184 -34
  216. data/stdlib/nodejs/fileutils.rb +4 -4
  217. data/stdlib/nodejs/io.rb +4 -46
  218. data/stdlib/nodejs/irb.rb +27 -29
  219. data/stdlib/nodejs/kernel.rb +2 -11
  220. data/stdlib/nodejs/node_modules/balanced-match/.npmignore +5 -0
  221. data/stdlib/nodejs/node_modules/balanced-match/LICENSE.md +21 -0
  222. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +13 -2
  223. data/stdlib/nodejs/node_modules/balanced-match/index.js +59 -0
  224. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/package.json +46 -42
  225. data/stdlib/nodejs/node_modules/brace-expansion/LICENSE +21 -0
  226. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +9 -1
  227. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +12 -2
  228. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/package.json +48 -48
  229. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
  230. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
  231. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
  232. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
  233. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
  234. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -42
  235. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
  236. data/stdlib/nodejs/node_modules/fs.realpath/LICENSE +43 -0
  237. data/stdlib/nodejs/node_modules/fs.realpath/README.md +33 -0
  238. data/stdlib/nodejs/node_modules/fs.realpath/index.js +66 -0
  239. data/stdlib/nodejs/node_modules/fs.realpath/old.js +303 -0
  240. data/stdlib/nodejs/node_modules/fs.realpath/package.json +59 -0
  241. data/stdlib/nodejs/node_modules/glob/README.md +57 -46
  242. data/stdlib/nodejs/node_modules/glob/changelog.md +67 -0
  243. data/stdlib/nodejs/node_modules/glob/common.js +91 -28
  244. data/stdlib/nodejs/node_modules/glob/glob.js +196 -55
  245. data/stdlib/nodejs/node_modules/glob/package.json +55 -51
  246. data/stdlib/nodejs/node_modules/glob/sync.js +116 -39
  247. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/LICENSE +0 -0
  248. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/README.md +0 -0
  249. data/stdlib/nodejs/node_modules/inflight/inflight.js +54 -0
  250. data/stdlib/nodejs/node_modules/inflight/package.json +58 -0
  251. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/LICENSE +0 -0
  252. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/README.md +0 -0
  253. data/stdlib/nodejs/node_modules/inherits/inherits.js +7 -0
  254. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/inherits_browser.js +0 -0
  255. data/stdlib/nodejs/node_modules/inherits/package.json +61 -0
  256. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → minimatch}/LICENSE +0 -0
  257. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/README.md +2 -9
  258. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/minimatch.js +284 -206
  259. data/stdlib/nodejs/node_modules/minimatch/package.json +63 -0
  260. data/stdlib/nodejs/node_modules/{glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
  261. data/stdlib/nodejs/node_modules/{glob/node_modules/once → once}/README.md +28 -0
  262. data/stdlib/nodejs/node_modules/once/once.js +42 -0
  263. data/stdlib/nodejs/node_modules/once/package.json +67 -0
  264. data/stdlib/nodejs/node_modules/path-is-absolute/index.js +20 -0
  265. data/stdlib/nodejs/node_modules/path-is-absolute/license +21 -0
  266. data/stdlib/nodejs/node_modules/path-is-absolute/package.json +75 -0
  267. data/stdlib/nodejs/node_modules/path-is-absolute/readme.md +59 -0
  268. data/stdlib/nodejs/node_modules/unxhr/LICENSE +22 -0
  269. data/stdlib/nodejs/node_modules/unxhr/README.md +41 -0
  270. data/stdlib/nodejs/node_modules/unxhr/lib/XMLHttpRequest.js +598 -0
  271. data/stdlib/nodejs/node_modules/unxhr/lib/browser.js +2 -0
  272. data/stdlib/nodejs/node_modules/unxhr/lib/request.js +63 -0
  273. data/stdlib/nodejs/node_modules/unxhr/package.json +75 -0
  274. data/stdlib/nodejs/node_modules/wrappy/LICENSE +15 -0
  275. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/README.md +0 -0
  276. data/stdlib/nodejs/node_modules/wrappy/package.json +59 -0
  277. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/wrappy.js +0 -0
  278. data/stdlib/nodejs/open-uri.rb +26 -0
  279. data/stdlib/nodejs/package-lock.json +88 -0
  280. data/stdlib/nodejs/package.json +2 -1
  281. data/stdlib/nodejs/pathname.rb +20 -0
  282. data/stdlib/nodejs/require.rb +3 -3
  283. data/stdlib/nodejs/stacktrace.rb +1 -1
  284. data/stdlib/nodejs/yaml.rb +1 -1
  285. data/stdlib/opal-builder.rb +1 -0
  286. data/stdlib/opal-parser.rb +4 -1
  287. data/stdlib/opal-platform.rb +8 -10
  288. data/stdlib/opal-source-maps.rb +0 -1
  289. data/stdlib/open-uri.rb +349 -0
  290. data/stdlib/ostruct.rb +19 -17
  291. data/stdlib/pathname.rb +22 -22
  292. data/stdlib/pp.rb +5 -5
  293. data/stdlib/promise.rb +30 -26
  294. data/stdlib/rbconfig/sizeof.rb +50 -0
  295. data/stdlib/securerandom.rb +1 -1
  296. data/stdlib/set.rb +21 -23
  297. data/stdlib/singleton.rb +3 -4
  298. data/stdlib/stringio.rb +33 -0
  299. data/stdlib/strscan.rb +55 -55
  300. data/stdlib/template.rb +1 -2
  301. data/stdlib/thread.rb +6 -7
  302. data/tasks/benchmarking.rake +1 -1
  303. data/tasks/building.rake +4 -12
  304. data/tasks/linting.rake +17 -2
  305. data/tasks/releasing.rake +84 -0
  306. data/tasks/testing.rake +57 -15
  307. data/tasks/testing/mspec_special_calls.rb +23 -4
  308. data/vendored-minitest/minitest.rb +1 -1
  309. metadata +169 -168
  310. data/bin/opal-build +0 -3
  311. data/exe/opal-mspec +0 -10
  312. data/lib/opal/nodes/args/initialize_kwargs.rb +0 -29
  313. data/lib/opal/nodes/args/kwarg.rb +0 -31
  314. data/lib/opal/nodes/args/kwoptarg.rb +0 -34
  315. data/lib/opal/nodes/args/kwrestarg.rb +0 -39
  316. data/lib/opal/nodes/args/mlhsarg.rb +0 -78
  317. data/lib/opal/nodes/args/normarg.rb +0 -29
  318. data/lib/opal/nodes/args/optarg.rb +0 -25
  319. data/lib/opal/nodes/args/post_args.rb +0 -201
  320. data/lib/opal/nodes/args/post_kwargs.rb +0 -32
  321. data/lib/opal/nodes/args/restarg.rb +0 -38
  322. data/lib/opal/nodes/inline_args.rb +0 -60
  323. data/opal/corelib/string/inheritance.rb +0 -123
  324. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
  325. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +0 -44
  326. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -52
  327. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
  328. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +0 -61
  329. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +0 -97
  330. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +0 -1
  331. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +0 -51
  332. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +0 -25
  333. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +0 -1
  334. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +0 -4
  335. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +0 -23
  336. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +0 -15
  337. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +0 -1181
  338. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -2
  339. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +0 -3
  340. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
  341. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
  342. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -4
  343. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
  344. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
  345. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -38
  346. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -56
  347. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +0 -32
  348. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +0 -1075
  349. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +0 -182
  350. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +0 -9
  351. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +0 -10
  352. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +0 -24
  353. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +0 -15
  354. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +0 -16
  355. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +0 -10
  356. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +0 -13
  357. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +0 -7
  358. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +0 -50
  359. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +0 -60
  360. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +0 -399
  361. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +0 -45
  362. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +0 -274
  363. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
  364. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +0 -27
  365. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
  366. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -52
  367. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
  368. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
  369. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +0 -21
  370. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +0 -60
  371. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +0 -23
  372. data/stdlib/nodejs/rubygems.rb +0 -68
  373. data/stdlib/source_map.rb +0 -5
  374. data/stdlib/source_map/map.rb +0 -220
  375. data/stdlib/source_map/mapping.rb +0 -26
  376. data/stdlib/source_map/offset.rb +0 -88
  377. data/stdlib/source_map/version.rb +0 -3
  378. data/stdlib/source_map/vlq.rb +0 -99
  379. data/stdlib/sourcemap.rb +0 -1
@@ -1,70 +1,108 @@
1
1
  class Buffer
2
+ class View
3
+ include Native::Wrapper
2
4
 
3
- class View
4
- include Native
5
+ def self.supported?
6
+ !$$[:DataView].nil?
7
+ end
5
8
 
6
- def self.supported?
7
- not $$[:DataView].nil?
8
- end
9
+ attr_reader :buffer, :offset
10
+
11
+ def initialize(buffer, offset = nil, length = nil)
12
+ if native?(buffer)
13
+ super(buffer)
14
+ elsif offset && length
15
+ super(`new DataView(#{buffer.to_n}, #{offset.to_n}, #{length.to_n})`)
16
+ elsif offset
17
+ super(`new DataView(#{buffer.to_n}, #{offset.to_n})`)
18
+ else
19
+ super(`new DataView(#{buffer.to_n})`)
20
+ end
21
+
22
+ @buffer = buffer
23
+ @offset = offset
24
+ end
25
+
26
+ def length
27
+ `#{@native}.byteLength`
28
+ end
9
29
 
10
- attr_reader :buffer, :offset
30
+ alias size length
11
31
 
12
- def initialize(buffer, offset = nil, length = nil)
13
- if native?(buffer)
14
- super(buffer)
15
- elsif offset && length
16
- super(`new DataView(#{buffer.to_n}, #{offset.to_n}, #{length.to_n})`)
17
- elsif offset
18
- super(`new DataView(#{buffer.to_n}, #{offset.to_n})`)
19
- else
20
- super(`new DataView(#{buffer.to_n})`)
32
+ def get(offset, bits = 8, type = :unsigned, little = false)
33
+ `#{@native}["get" + #{Buffer.name_for bits, type}](offset, little)`
21
34
  end
22
35
 
23
- @buffer = buffer
24
- @offset = offset
25
- end
36
+ alias [] get
26
37
 
27
- def length
28
- `#@native.byteLength`
29
- end
38
+ def set(offset, value, bits = 8, type = :unsigned, little = false)
39
+ `#{@native}["set" + #{Buffer.name_for bits, type}](offset, value, little)`
40
+ end
30
41
 
31
- alias size length
42
+ alias []= set
32
43
 
33
- def get(offset, bits = 8, type = :unsigned, little = false)
34
- `#@native["get" + #{Buffer.name_for bits, type}](offset, little)`
35
- end
44
+ def get_int8(offset, little = false)
45
+ `#{@native}.getInt8(offset, little)`
46
+ end
36
47
 
37
- alias [] get
48
+ def set_int8(offset, value, little = false)
49
+ `#{@native}.setInt8(offset, value, little)`
50
+ end
38
51
 
39
- def set(offset, value, bits = 8, type = :unsigned, little = false)
40
- `#@native["set" + #{Buffer.name_for bits, type}](offset, value, little)`
41
- end
52
+ def get_uint8(offset, little = false)
53
+ `#{@native}.getUint8(offset, little)`
54
+ end
42
55
 
43
- alias []= set
56
+ def set_uint8(offset, value, little = false)
57
+ `#{@native}.setUint8(offset, value, little)`
58
+ end
44
59
 
45
- def get_int8(offset, little = false); `#@native.getInt8(offset, little)`; end
46
- def set_int8(offset, value, little = false); `#@native.setInt8(offset, value, little)`; end
60
+ def get_int16(offset, little = false)
61
+ `#{@native}.getInt16(offset, little)`
62
+ end
47
63
 
48
- def get_uint8(offset, little = false); `#@native.getUint8(offset, little)`; end
49
- def set_uint8(offset, value, little = false); `#@native.setUint8(offset, value, little)`; end
64
+ def set_int16(offset, value, little = false)
65
+ `#{@native}.setInt16(offset, value, little)`
66
+ end
50
67
 
51
- def get_int16(offset, little = false); `#@native.getInt16(offset, little)`; end
52
- def set_int16(offset, value, little = false); `#@native.setInt16(offset, value, little)`; end
68
+ def get_uint16(offset, little = false)
69
+ `#{@native}.getUint16(offset, little)`
70
+ end
53
71
 
54
- def get_uint16(offset, little = false); `#@native.getUint16(offset, little)`; end
55
- def set_uint16(offset, value, little = false); `#@native.setUint16(offset, value, little)`; end
72
+ def set_uint16(offset, value, little = false)
73
+ `#{@native}.setUint16(offset, value, little)`
74
+ end
56
75
 
57
- def get_int32(offset, little = false); `#@native.getInt32(offset, little)`; end
58
- def set_int32(offset, value, little = false); `#@native.setInt32(offset, value, little)`; end
76
+ def get_int32(offset, little = false)
77
+ `#{@native}.getInt32(offset, little)`
78
+ end
59
79
 
60
- def get_uint32(offset, little = false); `#@native.getUint32(offset, little)`; end
61
- def set_uint32(offset, value, little = false); `#@native.setUint32(offset, value, little)`; end
80
+ def set_int32(offset, value, little = false)
81
+ `#{@native}.setInt32(offset, value, little)`
82
+ end
62
83
 
63
- def get_float32(offset, little = false); `#@native.getFloat32(offset, little)`; end
64
- def set_float32(offset, value, little = false); `#@native.setFloat32(offset, value, little)`; end
84
+ def get_uint32(offset, little = false)
85
+ `#{@native}.getUint32(offset, little)`
86
+ end
65
87
 
66
- def get_float64(offset, little = false); `#@native.getFloat64(offset, little)`; end
67
- def set_float64(offset, value, little = false); `#@native.setFloat64(offset, value, little)`; end
68
- end
88
+ def set_uint32(offset, value, little = false)
89
+ `#{@native}.setUint32(offset, value, little)`
90
+ end
69
91
 
92
+ def get_float32(offset, little = false)
93
+ `#{@native}.getFloat32(offset, little)`
94
+ end
95
+
96
+ def set_float32(offset, value, little = false)
97
+ `#{@native}.setFloat32(offset, value, little)`
98
+ end
99
+
100
+ def get_float64(offset, little = false)
101
+ `#{@native}.getFloat64(offset, little)`
102
+ end
103
+
104
+ def set_float64(offset, value, little = false)
105
+ `#{@native}.setFloat64(offset, value, little)`
106
+ end
107
+ end
70
108
  end
@@ -4,70 +4,70 @@ require 'native'
4
4
  #
5
5
  # @see https://developer.mozilla.org/en-US/docs/Web/API/console
6
6
  class Console
7
- include Native
7
+ include Native::Wrapper
8
8
 
9
9
  # Clear the console.
10
10
  def clear
11
- `#@native.clear()`
11
+ `#{@native}.clear()`
12
12
  end
13
13
 
14
14
  # Print a stacktrace from the call site.
15
15
  def trace
16
- `#@native.trace()`
16
+ `#{@native}.trace()`
17
17
  end
18
18
 
19
19
  # Log the passed objects based on an optional initial format.
20
20
  def log(*args)
21
- `#@native.log.apply(#@native, args)`
21
+ `#{@native}.log.apply(#{@native}, args)`
22
22
  end
23
23
 
24
24
  # Log the passed objects based on an optional initial format as informational
25
25
  # log.
26
26
  def info(*args)
27
- `#@native.info.apply(#@native, args)`
27
+ `#{@native}.info.apply(#{@native}, args)`
28
28
  end
29
29
 
30
30
  # Log the passed objects based on an optional initial format as warning.
31
31
  def warn(*args)
32
- `#@native.warn.apply(#@native, args)`
32
+ `#{@native}.warn.apply(#{@native}, args)`
33
33
  end
34
34
 
35
35
  # Log the passed objects based on an optional initial format as error.
36
36
  def error(*args)
37
- `#@native.error.apply(#@native, args)`
37
+ `#{@native}.error.apply(#{@native}, args)`
38
38
  end
39
39
 
40
40
  # Time the given block with the given label.
41
41
  def time(label, &block)
42
- raise ArgumentError, "no block given" unless block
42
+ raise ArgumentError, 'no block given' unless block
43
43
 
44
- `#@native.time(label)`
44
+ `#{@native}.time(label)`
45
45
 
46
46
  begin
47
47
  if block.arity == 0
48
48
  instance_exec(&block)
49
49
  else
50
- block.call(self)
50
+ yield(self)
51
51
  end
52
52
  ensure
53
- `#@native.timeEnd()`
53
+ `#{@native}.timeEnd()`
54
54
  end
55
55
  end
56
56
 
57
57
  # Group the given block.
58
58
  def group(*args, &block)
59
- raise ArgumentError, "no block given" unless block
59
+ raise ArgumentError, 'no block given' unless block
60
60
 
61
- `#@native.group.apply(#@native, args)`
61
+ `#{@native}.group.apply(#{@native}, args)`
62
62
 
63
63
  begin
64
64
  if block.arity == 0
65
65
  instance_exec(&block)
66
66
  else
67
- block.call(self)
67
+ yield(self)
68
68
  end
69
69
  ensure
70
- `#@native.groupEnd()`
70
+ `#{@native}.groupEnd()`
71
71
  end
72
72
  end
73
73
 
@@ -75,16 +75,16 @@ class Console
75
75
  def group!(*args, &block)
76
76
  return unless block_given?
77
77
 
78
- `#@native.groupCollapsed.apply(#@native, args)`
78
+ `#{@native}.groupCollapsed.apply(#{@native}, args)`
79
79
 
80
80
  begin
81
81
  if block.arity == 0
82
82
  instance_exec(&block)
83
83
  else
84
- block.call(self)
84
+ yield(self)
85
85
  end
86
86
  ensure
87
- `#@native.groupEnd()`
87
+ `#{@native}.groupEnd()`
88
88
  end
89
89
  end
90
90
  end
@@ -8,9 +8,7 @@ class Date
8
8
  @d = d <=> 0
9
9
  end
10
10
 
11
- def d
12
- @d
13
- end
11
+ attr_reader :d
14
12
 
15
13
  def zero?
16
14
  false
@@ -40,28 +38,28 @@ class Date
40
38
  self.class.new(+d)
41
39
  end
42
40
 
43
- def <=> (other)
41
+ def <=>(other)
44
42
  case other
45
- when Infinity;
46
- return d <=> other.d
47
- when Numeric;
48
- return d
49
- else
50
- begin
51
- l, r = other.coerce(self)
52
- return l <=> r
53
- rescue NoMethodError
54
- end
43
+ when Infinity
44
+ d <=> other.d
45
+ when Numeric
46
+ d
47
+ else
48
+ begin
49
+ l, r = other.coerce(self)
50
+ l <=> r
51
+ rescue NoMethodError
52
+ nil
53
+ end
55
54
  end
56
- nil
57
55
  end
58
56
 
59
57
  def coerce(other)
60
58
  case other
61
- when Numeric
62
- return -d, d
63
- else
64
- super
59
+ when Numeric
60
+ [-d, d]
61
+ else
62
+ super
65
63
  end
66
64
  end
67
65
 
@@ -77,12 +75,12 @@ class Date
77
75
 
78
76
  JULIAN = Infinity.new
79
77
  GREGORIAN = -Infinity.new
80
- ITALY = 2299161 # 1582-10-15
81
- ENGLAND = 2361222 # 1752-09-14
82
- MONTHNAMES = [nil] + %w(January February March April May June July August September October November December)
83
- ABBR_MONTHNAMES = %w(jan feb mar apr may jun jul aug sep oct nov dec)
84
- DAYNAMES = %w(Sunday Monday Tuesday Wednesday Thursday Friday Saturday)
85
- ABBR_DAYNAMES = %w(Sun Mon Tue Wed Thu Fri Sat)
78
+ ITALY = 2_299_161 # 1582-10-15
79
+ ENGLAND = 2_361_222 # 1752-09-14
80
+ MONTHNAMES = [nil] + %w[January February March April May June July August September October November December]
81
+ ABBR_MONTHNAMES = %w[jan feb mar apr may jun jul aug sep oct nov dec]
82
+ DAYNAMES = %w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday]
83
+ ABBR_DAYNAMES = %w[Sun Mon Tue Wed Thu Fri Sat]
86
84
 
87
85
  class << self
88
86
  alias civil new
@@ -101,7 +99,7 @@ class Date
101
99
  current_month = current_date.getMonth(),
102
100
  current_year = current_date.getFullYear(),
103
101
  current_wday = current_date.getDay(),
104
- full_month_name_regexp = #{MONTHNAMES.compact.join("|")};
102
+ full_month_name_regexp = #{MONTHNAMES.compact.join('|')};
105
103
 
106
104
  function match1(match) { return match[1]; }
107
105
  function match2(match) { return match[2]; }
@@ -269,7 +267,7 @@ class Date
269
267
  },
270
268
  {
271
269
  // ddd
272
- regexp: new RegExp("^(" + #{DAYNAMES.join("|")} + ")$", 'i'),
270
+ regexp: new RegExp("^(" + #{DAYNAMES.join('|')} + ")$", 'i'),
273
271
  year: current_year,
274
272
  month: current_month,
275
273
  day: fromDayName(match1)
@@ -349,6 +347,13 @@ class Date
349
347
  end
350
348
 
351
349
  def initialize(year = -4712, month = 1, day = 1, start = ITALY)
350
+ %x{
351
+ // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15.
352
+ // All days in between end up as 4 october.
353
+ if (year === 1582 && month === 10 && day > 4 && day < 15) {
354
+ day = 4;
355
+ }
356
+ }
352
357
  @date = `new Date(year, month - 1, day)`
353
358
  end
354
359
 
@@ -356,11 +361,11 @@ class Date
356
361
  %x{
357
362
  if (date.$$is_number) {
358
363
  var result = #{clone};
359
- result.date.setDate(#@date.getDate() - date);
364
+ result.date.setDate(#{@date}.getDate() - date);
360
365
  return result;
361
366
  }
362
367
  else if (date.date) {
363
- return Math.round((#@date - #{date}.date) / (1000 * 60 * 60 * 24));
368
+ return Math.round((#{@date} - #{date}.date) / (1000 * 60 * 60 * 24));
364
369
  }
365
370
  else {
366
371
  #{raise TypeError};
@@ -372,7 +377,7 @@ class Date
372
377
  %x{
373
378
  if (date.$$is_number) {
374
379
  var result = #{clone};
375
- result.date.setDate(#@date.getDate() + date);
380
+ result.date.setDate(#{@date}.getDate() + date);
376
381
  return result;
377
382
  }
378
383
  else {
@@ -383,7 +388,7 @@ class Date
383
388
 
384
389
  def <(other)
385
390
  %x{
386
- var a = #@date, b = #{other}.date;
391
+ var a = #{@date}, b = #{other}.date;
387
392
  a.setHours(0, 0, 0, 0);
388
393
  b.setHours(0, 0, 0, 0);
389
394
  return a < b;
@@ -392,7 +397,7 @@ class Date
392
397
 
393
398
  def <=(other)
394
399
  %x{
395
- var a = #@date, b = #{other}.date;
400
+ var a = #{@date}, b = #{other}.date;
396
401
  a.setHours(0, 0, 0, 0);
397
402
  b.setHours(0, 0, 0, 0);
398
403
  return a <= b;
@@ -401,7 +406,7 @@ class Date
401
406
 
402
407
  def >(other)
403
408
  %x{
404
- var a = #@date, b = #{other}.date;
409
+ var a = #{@date}, b = #{other}.date;
405
410
  a.setHours(0, 0, 0, 0);
406
411
  b.setHours(0, 0, 0, 0);
407
412
  return a > b;
@@ -410,7 +415,7 @@ class Date
410
415
 
411
416
  def >=(other)
412
417
  %x{
413
- var a = #@date, b = #{other}.date;
418
+ var a = #{@date}, b = #{other}.date;
414
419
  a.setHours(0, 0, 0, 0);
415
420
  b.setHours(0, 0, 0, 0);
416
421
  return a >= b;
@@ -420,11 +425,11 @@ class Date
420
425
  def <=>(other)
421
426
  %x{
422
427
  if (other.$$is_number) {
423
- return #{self.jd <=> other}
428
+ return #{jd <=> other}
424
429
  }
425
430
 
426
431
  if (#{Date === other}) {
427
- var a = #@date, b = #{other}.date;
432
+ var a = #{@date}, b = #{other}.date;
428
433
  a.setHours(0, 0, 0, 0);
429
434
  b.setHours(0, 0, 0, 0);
430
435
 
@@ -470,11 +475,11 @@ class Date
470
475
  alias eql? ==
471
476
 
472
477
  def clone
473
- Date.wrap(`new Date(#@date.getTime())`)
478
+ Date.wrap(`new Date(#{@date}.getTime())`)
474
479
  end
475
480
 
476
481
  def day
477
- `#@date.getDate()`
482
+ `#{@date}.getDate()`
478
483
  end
479
484
 
480
485
  def friday?
@@ -485,9 +490,9 @@ class Date
485
490
  %x{
486
491
  //Adapted from http://www.physics.sfasu.edu/astro/javascript/julianday.html
487
492
 
488
- var mm = #@date.getMonth() + 1,
489
- dd = #@date.getDate(),
490
- yy = #@date.getFullYear(),
493
+ var mm = #{@date}.getMonth() + 1,
494
+ dd = #{@date}.getDate(),
495
+ yy = #{@date}.getFullYear(),
491
496
  hr = 12, mn = 0, sc = 0,
492
497
  ggg, s, a, j1, jd;
493
498
 
@@ -518,7 +523,7 @@ class Date
518
523
  end
519
524
 
520
525
  def julian?
521
- `#@date < new Date(1582, 10 - 1, 15, 12)`
526
+ `#{@date} < new Date(1582, 10 - 1, 15, 12)`
522
527
  end
523
528
 
524
529
  def monday?
@@ -526,41 +531,49 @@ class Date
526
531
  end
527
532
 
528
533
  def month
529
- `#@date.getMonth() + 1`
534
+ `#{@date}.getMonth() + 1`
530
535
  end
531
536
 
532
537
  def next
533
538
  self + 1
534
539
  end
535
540
 
536
- def next_day(n=1)
541
+ def next_day(n = 1)
537
542
  self + n
538
543
  end
539
544
 
540
- def next_month
545
+ def next_month(n = 1)
541
546
  %x{
542
547
  var result = #{clone}, date = result.date, cur = date.getDate();
543
548
  date.setDate(1);
544
- date.setMonth(date.getMonth() + 1);
549
+ date.setMonth(date.getMonth() + n);
545
550
  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
546
551
  return result;
547
552
  }
548
553
  end
549
554
 
550
- def prev_day(n=1)
555
+ def next_year(years = 1)
556
+ self.class.new(year + years, month, day)
557
+ end
558
+
559
+ def prev_day(n = 1)
551
560
  self - n
552
561
  end
553
562
 
554
- def prev_month
563
+ def prev_month(n = 1)
555
564
  %x{
556
565
  var result = #{clone}, date = result.date, cur = date.getDate();
557
566
  date.setDate(1);
558
- date.setMonth(date.getMonth() - 1);
567
+ date.setMonth(date.getMonth() - n);
559
568
  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
560
569
  return result;
561
570
  }
562
571
  end
563
572
 
573
+ def prev_year(years = 1)
574
+ self.class.new(year - years, month, day)
575
+ end
576
+
564
577
  def saturday?
565
578
  wday == 6
566
579
  end
@@ -571,11 +584,11 @@ class Date
571
584
  return #{to_s};
572
585
  }
573
586
 
574
- return #@date.$strftime(#{format});
587
+ return #{@date}.$strftime(#{format});
575
588
  }
576
589
  end
577
590
 
578
- alias_method :succ, :next
591
+ alias succ next
579
592
 
580
593
  def sunday?
581
594
  wday == 0
@@ -587,13 +600,21 @@ class Date
587
600
 
588
601
  def to_s
589
602
  %x{
590
- var d = #@date, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate();
603
+ var d = #{@date}, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate();
591
604
  if (month < 10) { month = '0' + month; }
592
605
  if (day < 10) { day = '0' + day; }
593
606
  return year + '-' + month + '-' + day;
594
607
  }
595
608
  end
596
609
 
610
+ def to_time
611
+ Time.new(year, month, day)
612
+ end
613
+
614
+ def to_n
615
+ @date
616
+ end
617
+
597
618
  def tuesday?
598
619
  wday == 2
599
620
  end
@@ -601,21 +622,19 @@ class Date
601
622
  def step(limit, step = 1, &block)
602
623
  steps_count = (limit - self).to_i
603
624
 
604
- if (steps_count * step) < 0
605
- steps = []
606
- else
607
- if steps_count < 0
608
- steps = (0..-steps_count).step(step.abs).map { |i| -i } .reverse
609
- else
610
- steps = (0..steps_count).step(step.abs)
611
- end
612
- end
625
+ steps = if steps_count * step < 0
626
+ []
627
+ elsif steps_count < 0
628
+ (0..-steps_count).step(step.abs).map(&:-@) .reverse
629
+ else
630
+ (0..steps_count).step(step.abs)
631
+ end
613
632
 
614
633
  result = steps.map { |i| self + i }
615
634
 
616
635
 
617
636
  if block_given?
618
- result.each {|i| yield(i)}
637
+ result.each { |i| yield(i) }
619
638
  self
620
639
  else
621
640
  result
@@ -631,7 +650,7 @@ class Date
631
650
  end
632
651
 
633
652
  def wday
634
- `#@date.getDay()`
653
+ `#{@date}.getDay()`
635
654
  end
636
655
 
637
656
  def wednesday?
@@ -639,16 +658,16 @@ class Date
639
658
  end
640
659
 
641
660
  def year
642
- `#@date.getFullYear()`
661
+ `#{@date}.getFullYear()`
643
662
  end
644
663
 
645
664
  def cwday
646
- `#@date.getDay() || 7;`
665
+ `#{@date}.getDay() || 7`
647
666
  end
648
667
 
649
668
  def cweek
650
669
  %x{
651
- var d = new Date(#@date);
670
+ var d = new Date(#{@date});
652
671
  d.setHours(0,0,0);
653
672
  d.setDate(d.getDate()+4-(d.getDay()||7));
654
673
  return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7);