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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +42 -10
- data/.rubocop.yml +398 -0
- data/.rubocop_todo.yml +44 -0
- data/.travis.yml +28 -34
- data/CHANGELOG.md +363 -142
- data/CONTRIBUTING.md +3 -5
- data/Gemfile +17 -12
- data/Guardfile +0 -1
- data/HACKING.md +1 -35
- data/LICENSE +2 -2
- data/README.md +42 -13
- data/Rakefile +1 -4
- data/UNRELEASED.md +133 -0
- data/benchmark-ips/README.md +6 -0
- data/benchmark-ips/bm_block_vs_yield.rb +21 -0
- data/benchmark-ips/bm_js_symbols_vs_strings.rb +28 -0
- data/benchmark-ips/bm_while_true_vs_loop.rb +19 -0
- data/bin/console +14 -0
- data/bin/opal +0 -1
- data/bin/opal-benchmark-ips +8 -0
- data/bin/opal-mspec +9 -1
- data/bin/opal-repl +2 -1
- data/bin/rake +7 -0
- data/bin/setup +8 -0
- data/docs/compiled_ruby.md +89 -8
- data/docs/compiler.md +3 -20
- data/docs/jquery.md +44 -11
- data/docs/promises.md +1 -1
- data/docs/rails.md +16 -12
- data/docs/sinatra.md +15 -8
- data/docs/using_sprockets.md +16 -11
- data/examples/rack/config.ru +1 -0
- data/examples/sinatra/Gemfile +1 -0
- data/examples/sinatra/config.ru +2 -11
- data/exe/opal-repl +3 -11
- data/lib/opal.rb +1 -0
- data/lib/opal/ast/builder.rb +4 -1
- data/lib/opal/ast/node.rb +1 -0
- data/lib/opal/builder.rb +84 -63
- data/lib/opal/builder_processors.rb +41 -56
- data/lib/opal/cli.rb +33 -49
- data/lib/opal/cli_options.rb +27 -17
- data/lib/opal/cli_runners.rb +73 -16
- data/lib/opal/cli_runners/applescript.rb +4 -4
- data/lib/opal/cli_runners/chrome.rb +29 -17
- data/lib/opal/cli_runners/nashorn.rb +5 -4
- data/lib/opal/cli_runners/nodejs.rb +8 -6
- data/lib/opal/cli_runners/server.rb +12 -11
- data/lib/opal/compiler.rb +85 -103
- data/lib/opal/config.rb +3 -3
- data/lib/opal/deprecations.rb +2 -1
- data/lib/opal/eof_content.rb +2 -2
- data/lib/opal/erb.rb +8 -7
- data/lib/opal/errors.rb +72 -1
- data/lib/opal/fragment.rb +23 -3
- data/lib/opal/hike.rb +305 -0
- data/lib/opal/nodes.rb +5 -10
- data/lib/opal/nodes/arglist.rb +7 -6
- data/lib/opal/nodes/args.rb +36 -0
- data/lib/opal/nodes/args/arg.rb +22 -0
- data/lib/opal/nodes/args/arity_check.rb +151 -0
- data/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb +28 -0
- data/lib/opal/nodes/args/extract_block_arg.rb +34 -0
- data/lib/opal/nodes/args/extract_kwarg.rb +32 -0
- data/lib/opal/nodes/args/extract_kwargs.rb +28 -0
- data/lib/opal/nodes/args/extract_kwoptarg.rb +35 -0
- data/lib/opal/nodes/args/extract_kwrestarg.rb +35 -0
- data/lib/opal/nodes/args/extract_optarg.rb +35 -0
- data/lib/opal/nodes/args/extract_post_arg.rb +28 -0
- data/lib/opal/nodes/args/extract_post_optarg.rb +41 -0
- data/lib/opal/nodes/args/extract_restarg.rb +40 -0
- data/lib/opal/nodes/args/fake_arg.rb +26 -0
- data/lib/opal/nodes/args/initialize_iterarg.rb +28 -0
- data/lib/opal/nodes/args/initialize_shadowarg.rb +24 -0
- data/lib/opal/nodes/args/parameters.rb +63 -0
- data/lib/opal/nodes/args/prepare_post_args.rb +22 -0
- data/lib/opal/nodes/array.rb +9 -8
- data/lib/opal/nodes/base.rb +20 -11
- data/lib/opal/nodes/call.rb +24 -25
- data/lib/opal/nodes/call_special.rb +4 -3
- data/lib/opal/nodes/case.rb +24 -26
- data/lib/opal/nodes/class.rb +4 -5
- data/lib/opal/nodes/constants.rb +8 -7
- data/lib/opal/nodes/csend.rb +2 -3
- data/lib/opal/nodes/def.rb +28 -74
- data/lib/opal/nodes/defined.rb +36 -36
- data/lib/opal/nodes/definitions.rb +10 -7
- data/lib/opal/nodes/defs.rb +8 -16
- data/lib/opal/nodes/hash.rb +5 -4
- data/lib/opal/nodes/helpers.rb +8 -8
- data/lib/opal/nodes/if.rb +10 -8
- data/lib/opal/nodes/iter.rb +16 -103
- data/lib/opal/nodes/lambda.rb +18 -0
- data/lib/opal/nodes/literal.rb +29 -63
- data/lib/opal/nodes/logic.rb +25 -24
- data/lib/opal/nodes/masgn.rb +8 -6
- data/lib/opal/nodes/module.rb +4 -4
- data/lib/opal/nodes/node_with_args.rb +14 -208
- data/lib/opal/nodes/rescue.rb +32 -32
- data/lib/opal/nodes/runtime_helpers.rb +5 -4
- data/lib/opal/nodes/scope.rb +18 -29
- data/lib/opal/nodes/singleton_class.rb +3 -3
- data/lib/opal/nodes/super.rb +12 -18
- data/lib/opal/nodes/top.rb +10 -8
- data/lib/opal/nodes/variables.rb +6 -6
- data/lib/opal/nodes/while.rb +7 -6
- data/lib/opal/nodes/x_string.rb +139 -0
- data/lib/opal/nodes/yield.rb +10 -7
- data/lib/opal/parser.rb +9 -46
- data/lib/opal/parser/default_config.rb +50 -0
- data/lib/opal/parser/patch.rb +26 -0
- data/lib/opal/parser/source_buffer.rb +11 -0
- data/lib/opal/parser/with_c_lexer.rb +14 -0
- data/lib/opal/parser/with_ruby_lexer.rb +6 -0
- data/lib/opal/path_reader.rb +6 -5
- data/lib/opal/paths.rb +9 -6
- data/lib/opal/regexp_anchors.rb +6 -5
- data/lib/opal/rewriter.rb +7 -0
- data/lib/opal/rewriters/arguments.rb +58 -0
- data/lib/opal/rewriters/base.rb +32 -12
- data/lib/opal/rewriters/binary_operator_assignment.rb +20 -20
- data/lib/opal/rewriters/block_to_iter.rb +2 -1
- data/lib/opal/rewriters/break_finder.rb +2 -0
- data/lib/opal/rewriters/dot_js_syntax.rb +3 -2
- data/lib/opal/rewriters/dump_args.rb +28 -0
- data/lib/opal/rewriters/explicit_writer_return.rb +4 -3
- data/lib/opal/rewriters/for_rewriter.rb +12 -12
- data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +2 -1
- data/lib/opal/rewriters/inline_args.rb +220 -0
- data/lib/opal/rewriters/js_reserved_words.rb +21 -17
- data/lib/opal/rewriters/logical_operator_assignment.rb +24 -14
- data/lib/opal/rewriters/mlhs_args.rb +128 -0
- data/lib/opal/rewriters/opal_engine_check.rb +11 -6
- data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +3 -2
- data/lib/opal/server.rb +1 -0
- data/lib/opal/simple_server.rb +15 -23
- data/lib/opal/source_map.rb +7 -70
- data/lib/opal/source_map/file.rb +199 -0
- data/lib/opal/source_map/index.rb +83 -0
- data/lib/opal/source_map/map.rb +26 -0
- data/lib/opal/source_map/vlq.rb +98 -0
- data/lib/opal/util.rb +7 -5
- data/lib/opal/version.rb +2 -1
- data/lib/tilt/opal.rb +3 -3
- data/opal.gemspec +18 -9
- data/opal/corelib/array.rb +135 -117
- data/opal/corelib/array/pack.rb +446 -0
- data/opal/corelib/basic_object.rb +23 -9
- data/opal/corelib/boolean.rb +3 -3
- data/opal/corelib/class.rb +4 -10
- data/opal/corelib/comparable.rb +36 -23
- data/opal/corelib/complex.rb +108 -14
- data/opal/corelib/constants.rb +4 -4
- data/opal/corelib/enumerable.rb +132 -135
- data/opal/corelib/enumerator.rb +47 -50
- data/opal/corelib/error.rb +65 -8
- data/opal/corelib/file.rb +37 -32
- data/opal/corelib/hash.rb +90 -21
- data/opal/corelib/helpers.rb +7 -6
- data/opal/corelib/kernel.rb +53 -586
- data/opal/corelib/kernel/format.rb +544 -0
- data/opal/corelib/marshal.rb +1 -13
- data/opal/corelib/marshal/read_buffer.rb +20 -23
- data/opal/corelib/marshal/write_buffer.rb +23 -15
- data/opal/corelib/math.rb +12 -16
- data/opal/corelib/method.rb +5 -3
- data/opal/corelib/module.rb +80 -109
- data/opal/corelib/nil.rb +2 -2
- data/opal/corelib/number.rb +177 -43
- data/opal/corelib/numeric.rb +22 -16
- data/opal/corelib/pack_unpack/format_string_parser.rb +135 -0
- data/opal/corelib/proc.rb +3 -4
- data/opal/corelib/process.rb +1 -1
- data/opal/corelib/random.rb +24 -16
- data/opal/corelib/random/MersenneTwister.js +137 -0
- data/opal/corelib/random/math_random.js.rb +9 -0
- data/opal/corelib/random/mersenne_twister.js.rb +13 -0
- data/opal/corelib/random/seedrandom.js.rb +12 -0
- data/opal/corelib/range.rb +25 -26
- data/opal/corelib/rational.rb +57 -17
- data/opal/corelib/regexp.rb +39 -43
- data/opal/corelib/runtime.js +806 -683
- data/opal/corelib/string.rb +213 -112
- data/opal/corelib/string/encoding.rb +14 -17
- data/opal/corelib/string/unpack.rb +793 -0
- data/opal/corelib/struct.rb +40 -24
- data/opal/corelib/time.rb +14 -15
- data/opal/corelib/unsupported.rb +26 -4
- data/opal/opal.rb +2 -1
- data/opal/opal/full.rb +2 -0
- data/stdlib/base64.rb +1 -1
- data/stdlib/bigdecimal.rb +11 -13
- data/stdlib/buffer.rb +9 -8
- data/stdlib/buffer/array.rb +46 -48
- data/stdlib/buffer/view.rb +85 -47
- data/stdlib/console.rb +18 -18
- data/stdlib/date.rb +85 -66
- data/stdlib/delegate.rb +2 -2
- data/stdlib/e2mmap.rb +176 -0
- data/stdlib/encoding.rb +1 -1
- data/stdlib/erb.rb +1 -1
- data/stdlib/forwardable.rb +14 -14
- data/stdlib/json.rb +1 -2
- data/stdlib/logger.rb +112 -0
- data/stdlib/math.rb +1 -1
- data/stdlib/matrix.rb +2169 -0
- data/stdlib/matrix/eigenvalue_decomposition.rb +883 -0
- data/stdlib/matrix/lup_decomposition.rb +219 -0
- data/stdlib/nashorn/file.rb +7 -9
- data/stdlib/native.rb +69 -63
- data/stdlib/nodejs.rb +3 -0
- data/stdlib/nodejs/dir.rb +25 -4
- data/stdlib/nodejs/env.rb +40 -0
- data/stdlib/nodejs/file.rb +184 -34
- data/stdlib/nodejs/fileutils.rb +4 -4
- data/stdlib/nodejs/io.rb +4 -46
- data/stdlib/nodejs/irb.rb +27 -29
- data/stdlib/nodejs/kernel.rb +2 -11
- data/stdlib/nodejs/node_modules/balanced-match/.npmignore +5 -0
- data/stdlib/nodejs/node_modules/balanced-match/LICENSE.md +21 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +13 -2
- data/stdlib/nodejs/node_modules/balanced-match/index.js +59 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/package.json +46 -42
- data/stdlib/nodejs/node_modules/brace-expansion/LICENSE +21 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +9 -1
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +12 -2
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/package.json +48 -48
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -42
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
- data/stdlib/nodejs/node_modules/fs.realpath/LICENSE +43 -0
- data/stdlib/nodejs/node_modules/fs.realpath/README.md +33 -0
- data/stdlib/nodejs/node_modules/fs.realpath/index.js +66 -0
- data/stdlib/nodejs/node_modules/fs.realpath/old.js +303 -0
- data/stdlib/nodejs/node_modules/fs.realpath/package.json +59 -0
- data/stdlib/nodejs/node_modules/glob/README.md +57 -46
- data/stdlib/nodejs/node_modules/glob/changelog.md +67 -0
- data/stdlib/nodejs/node_modules/glob/common.js +91 -28
- data/stdlib/nodejs/node_modules/glob/glob.js +196 -55
- data/stdlib/nodejs/node_modules/glob/package.json +55 -51
- data/stdlib/nodejs/node_modules/glob/sync.js +116 -39
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/README.md +0 -0
- data/stdlib/nodejs/node_modules/inflight/inflight.js +54 -0
- data/stdlib/nodejs/node_modules/inflight/package.json +58 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/README.md +0 -0
- data/stdlib/nodejs/node_modules/inherits/inherits.js +7 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/inherits_browser.js +0 -0
- data/stdlib/nodejs/node_modules/inherits/package.json +61 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → minimatch}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/README.md +2 -9
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/minimatch.js +284 -206
- data/stdlib/nodejs/node_modules/minimatch/package.json +63 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/once → once}/README.md +28 -0
- data/stdlib/nodejs/node_modules/once/once.js +42 -0
- data/stdlib/nodejs/node_modules/once/package.json +67 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/index.js +20 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/license +21 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/package.json +75 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/readme.md +59 -0
- data/stdlib/nodejs/node_modules/unxhr/LICENSE +22 -0
- data/stdlib/nodejs/node_modules/unxhr/README.md +41 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/XMLHttpRequest.js +598 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/browser.js +2 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/request.js +63 -0
- data/stdlib/nodejs/node_modules/unxhr/package.json +75 -0
- data/stdlib/nodejs/node_modules/wrappy/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/README.md +0 -0
- data/stdlib/nodejs/node_modules/wrappy/package.json +59 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/wrappy.js +0 -0
- data/stdlib/nodejs/open-uri.rb +26 -0
- data/stdlib/nodejs/package-lock.json +88 -0
- data/stdlib/nodejs/package.json +2 -1
- data/stdlib/nodejs/pathname.rb +20 -0
- data/stdlib/nodejs/require.rb +3 -3
- data/stdlib/nodejs/stacktrace.rb +1 -1
- data/stdlib/nodejs/yaml.rb +1 -1
- data/stdlib/opal-builder.rb +1 -0
- data/stdlib/opal-parser.rb +4 -1
- data/stdlib/opal-platform.rb +8 -10
- data/stdlib/opal-source-maps.rb +0 -1
- data/stdlib/open-uri.rb +349 -0
- data/stdlib/ostruct.rb +19 -17
- data/stdlib/pathname.rb +22 -22
- data/stdlib/pp.rb +5 -5
- data/stdlib/promise.rb +30 -26
- data/stdlib/rbconfig/sizeof.rb +50 -0
- data/stdlib/securerandom.rb +1 -1
- data/stdlib/set.rb +21 -23
- data/stdlib/singleton.rb +3 -4
- data/stdlib/stringio.rb +33 -0
- data/stdlib/strscan.rb +55 -55
- data/stdlib/template.rb +1 -2
- data/stdlib/thread.rb +6 -7
- data/tasks/benchmarking.rake +1 -1
- data/tasks/building.rake +4 -12
- data/tasks/linting.rake +17 -2
- data/tasks/releasing.rake +84 -0
- data/tasks/testing.rake +57 -15
- data/tasks/testing/mspec_special_calls.rb +23 -4
- data/vendored-minitest/minitest.rb +1 -1
- metadata +169 -168
- data/bin/opal-build +0 -3
- data/exe/opal-mspec +0 -10
- data/lib/opal/nodes/args/initialize_kwargs.rb +0 -29
- data/lib/opal/nodes/args/kwarg.rb +0 -31
- data/lib/opal/nodes/args/kwoptarg.rb +0 -34
- data/lib/opal/nodes/args/kwrestarg.rb +0 -39
- data/lib/opal/nodes/args/mlhsarg.rb +0 -78
- data/lib/opal/nodes/args/normarg.rb +0 -29
- data/lib/opal/nodes/args/optarg.rb +0 -25
- data/lib/opal/nodes/args/post_args.rb +0 -201
- data/lib/opal/nodes/args/post_kwargs.rb +0 -32
- data/lib/opal/nodes/args/restarg.rb +0 -38
- data/lib/opal/nodes/inline_args.rb +0 -60
- data/opal/corelib/string/inheritance.rb +0 -123
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +0 -44
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -52
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +0 -61
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +0 -97
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +0 -1
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +0 -25
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +0 -1
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +0 -4
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +0 -23
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +0 -15
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +0 -1181
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -2
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +0 -3
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -4
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -38
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -56
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +0 -32
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +0 -1075
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +0 -182
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +0 -9
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +0 -10
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +0 -24
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +0 -15
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +0 -16
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +0 -10
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +0 -13
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +0 -7
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +0 -50
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +0 -60
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +0 -399
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +0 -45
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +0 -274
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
- data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +0 -27
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -52
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
- data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +0 -21
- data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +0 -60
- data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +0 -23
- data/stdlib/nodejs/rubygems.rb +0 -68
- data/stdlib/source_map.rb +0 -5
- data/stdlib/source_map/map.rb +0 -220
- data/stdlib/source_map/mapping.rb +0 -26
- data/stdlib/source_map/offset.rb +0 -88
- data/stdlib/source_map/version.rb +0 -3
- data/stdlib/source_map/vlq.rb +0 -99
- data/stdlib/sourcemap.rb +0 -1
data/stdlib/buffer/view.rb
CHANGED
@@ -1,70 +1,108 @@
|
|
1
1
|
class Buffer
|
2
|
+
class View
|
3
|
+
include Native::Wrapper
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
+
def self.supported?
|
6
|
+
!$$[:DataView].nil?
|
7
|
+
end
|
5
8
|
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
30
|
+
alias size length
|
11
31
|
|
12
|
-
|
13
|
-
|
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
|
-
|
24
|
-
@offset = offset
|
25
|
-
end
|
36
|
+
alias [] get
|
26
37
|
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
42
|
+
alias []= set
|
32
43
|
|
33
|
-
|
34
|
-
|
35
|
-
|
44
|
+
def get_int8(offset, little = false)
|
45
|
+
`#{@native}.getInt8(offset, little)`
|
46
|
+
end
|
36
47
|
|
37
|
-
|
48
|
+
def set_int8(offset, value, little = false)
|
49
|
+
`#{@native}.setInt8(offset, value, little)`
|
50
|
+
end
|
38
51
|
|
39
|
-
|
40
|
-
|
41
|
-
|
52
|
+
def get_uint8(offset, little = false)
|
53
|
+
`#{@native}.getUint8(offset, little)`
|
54
|
+
end
|
42
55
|
|
43
|
-
|
56
|
+
def set_uint8(offset, value, little = false)
|
57
|
+
`#{@native}.setUint8(offset, value, little)`
|
58
|
+
end
|
44
59
|
|
45
|
-
|
46
|
-
|
60
|
+
def get_int16(offset, little = false)
|
61
|
+
`#{@native}.getInt16(offset, little)`
|
62
|
+
end
|
47
63
|
|
48
|
-
|
49
|
-
|
64
|
+
def set_int16(offset, value, little = false)
|
65
|
+
`#{@native}.setInt16(offset, value, little)`
|
66
|
+
end
|
50
67
|
|
51
|
-
|
52
|
-
|
68
|
+
def get_uint16(offset, little = false)
|
69
|
+
`#{@native}.getUint16(offset, little)`
|
70
|
+
end
|
53
71
|
|
54
|
-
|
55
|
-
|
72
|
+
def set_uint16(offset, value, little = false)
|
73
|
+
`#{@native}.setUint16(offset, value, little)`
|
74
|
+
end
|
56
75
|
|
57
|
-
|
58
|
-
|
76
|
+
def get_int32(offset, little = false)
|
77
|
+
`#{@native}.getInt32(offset, little)`
|
78
|
+
end
|
59
79
|
|
60
|
-
|
61
|
-
|
80
|
+
def set_int32(offset, value, little = false)
|
81
|
+
`#{@native}.setInt32(offset, value, little)`
|
82
|
+
end
|
62
83
|
|
63
|
-
|
64
|
-
|
84
|
+
def get_uint32(offset, little = false)
|
85
|
+
`#{@native}.getUint32(offset, little)`
|
86
|
+
end
|
65
87
|
|
66
|
-
|
67
|
-
|
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
|
data/stdlib/console.rb
CHANGED
@@ -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
|
-
|
11
|
+
`#{@native}.clear()`
|
12
12
|
end
|
13
13
|
|
14
14
|
# Print a stacktrace from the call site.
|
15
15
|
def trace
|
16
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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,
|
42
|
+
raise ArgumentError, 'no block given' unless block
|
43
43
|
|
44
|
-
|
44
|
+
`#{@native}.time(label)`
|
45
45
|
|
46
46
|
begin
|
47
47
|
if block.arity == 0
|
48
48
|
instance_exec(&block)
|
49
49
|
else
|
50
|
-
|
50
|
+
yield(self)
|
51
51
|
end
|
52
52
|
ensure
|
53
|
-
|
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,
|
59
|
+
raise ArgumentError, 'no block given' unless block
|
60
60
|
|
61
|
-
|
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
|
-
|
67
|
+
yield(self)
|
68
68
|
end
|
69
69
|
ensure
|
70
|
-
|
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
|
-
|
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
|
-
|
84
|
+
yield(self)
|
85
85
|
end
|
86
86
|
ensure
|
87
|
-
|
87
|
+
`#{@native}.groupEnd()`
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
data/stdlib/date.rb
CHANGED
@@ -8,9 +8,7 @@ class Date
|
|
8
8
|
@d = d <=> 0
|
9
9
|
end
|
10
10
|
|
11
|
-
|
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 <=>
|
41
|
+
def <=>(other)
|
44
42
|
case other
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
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 =
|
81
|
-
ENGLAND =
|
82
|
-
MONTHNAMES = [nil] + %w
|
83
|
-
ABBR_MONTHNAMES = %w
|
84
|
-
DAYNAMES = %w
|
85
|
-
ABBR_DAYNAMES = %w
|
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(
|
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(
|
364
|
+
result.date.setDate(#{@date}.getDate() - date);
|
360
365
|
return result;
|
361
366
|
}
|
362
367
|
else if (date.date) {
|
363
|
-
return Math.round((
|
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(
|
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 =
|
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 =
|
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 =
|
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 =
|
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 #{
|
428
|
+
return #{jd <=> other}
|
424
429
|
}
|
425
430
|
|
426
431
|
if (#{Date === other}) {
|
427
|
-
var a =
|
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(
|
478
|
+
Date.wrap(`new Date(#{@date}.getTime())`)
|
474
479
|
end
|
475
480
|
|
476
481
|
def day
|
477
|
-
|
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 =
|
489
|
-
dd =
|
490
|
-
yy =
|
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
|
-
|
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
|
-
|
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() +
|
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
|
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() -
|
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
|
587
|
+
return #{@date}.$strftime(#{format});
|
575
588
|
}
|
576
589
|
end
|
577
590
|
|
578
|
-
|
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 =
|
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
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
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
|
-
|
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
|
-
|
661
|
+
`#{@date}.getFullYear()`
|
643
662
|
end
|
644
663
|
|
645
664
|
def cwday
|
646
|
-
|
665
|
+
`#{@date}.getDay() || 7`
|
647
666
|
end
|
648
667
|
|
649
668
|
def cweek
|
650
669
|
%x{
|
651
|
-
var d = new 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);
|