opal 0.7.0 → 0.7.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/lib/opal/cli.rb +9 -1
- data/lib/opal/cli_options.rb +12 -3
- data/lib/opal/cli_runners/nodejs.rb +3 -2
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/kernel.rb +7 -0
- data/opal/corelib/runtime.js +4 -0
- data/spec/lib/cli_spec.rb +16 -0
- data/stdlib/nodejs.rb +1 -2
- data/stdlib/nodejs/{process.rb → kernel.rb} +7 -4
- data/stdlib/nodejs/node_modules/.bin/js-yaml +140 -0
- data/stdlib/nodejs/node_modules/glob/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/glob/README.md +357 -0
- data/stdlib/nodejs/node_modules/glob/common.js +177 -0
- data/stdlib/nodejs/node_modules/glob/glob.js +649 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/README.md +37 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +44 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +52 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +61 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +97 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/LICENSE +16 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/README.md +42 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +1 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +51 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +25 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/README.md +216 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +4 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +4 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +60 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +27 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/README.md +51 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +52 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +21 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +60 -0
- data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +23 -0
- data/stdlib/nodejs/node_modules/glob/package.json +72 -0
- data/stdlib/nodejs/node_modules/glob/sync.js +409 -0
- data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +277 -0
- data/stdlib/nodejs/node_modules/js-yaml/LICENSE +21 -0
- data/stdlib/nodejs/node_modules/js-yaml/README.md +288 -0
- data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +140 -0
- data/stdlib/nodejs/node_modules/js-yaml/bower.json +23 -0
- data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.js +3666 -0
- data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +3 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +102 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +18 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +31 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +22 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +18 -0
- data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +197 -0
- data/stdlib/nodejs/node_modules/js-yaml/index.js +7 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +39 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +62 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +554 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +1581 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +133 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +37 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +110 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +183 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +85 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +84 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +27 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +56 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +61 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +33 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +98 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esparse +117 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esvalidate +177 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +115 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1168 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +798 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +2 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +8 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +825 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +33 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +10 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +26 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +107 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +23 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +22 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +69 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +6 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1415 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +62 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +69 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
- data/stdlib/nodejs/node_modules/js-yaml/package.json +83 -0
- data/{package.json → stdlib/nodejs/package.json} +0 -3
- data/stdlib/phantomjs.rb +1 -6
- data/tasks/testing.rake +1 -4
- metadata +191 -6
- data/stdlib/nodejs/runtime.rb +0 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./lib/argparse');
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* class Action
|
|
3
|
+
*
|
|
4
|
+
* Base class for all actions
|
|
5
|
+
* Do not call in your code, use this class only for inherits your own action
|
|
6
|
+
*
|
|
7
|
+
* Information about how to convert command line strings to Javascript objects.
|
|
8
|
+
* Action objects are used by an ArgumentParser to represent the information
|
|
9
|
+
* needed to parse a single argument from one or more strings from the command
|
|
10
|
+
* line. The keyword arguments to the Action constructor are also all attributes
|
|
11
|
+
* of Action instances.
|
|
12
|
+
*
|
|
13
|
+
* #####Alowed keywords:
|
|
14
|
+
*
|
|
15
|
+
* - `store`
|
|
16
|
+
* - `storeConstant`
|
|
17
|
+
* - `storeTrue`
|
|
18
|
+
* - `storeFalse`
|
|
19
|
+
* - `append`
|
|
20
|
+
* - `appendConstant`
|
|
21
|
+
* - `count`
|
|
22
|
+
* - `help`
|
|
23
|
+
* - `version`
|
|
24
|
+
*
|
|
25
|
+
* Information about action options see [[Action.new]]
|
|
26
|
+
*
|
|
27
|
+
* See also [original guide](http://docs.python.org/dev/library/argparse.html#action)
|
|
28
|
+
*
|
|
29
|
+
**/
|
|
30
|
+
|
|
31
|
+
'use strict';
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
// Constants
|
|
35
|
+
var $$ = require('./const');
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* new Action(options)
|
|
40
|
+
*
|
|
41
|
+
* Base class for all actions. Used only for inherits
|
|
42
|
+
*
|
|
43
|
+
*
|
|
44
|
+
* ##### Options:
|
|
45
|
+
*
|
|
46
|
+
* - `optionStrings` A list of command-line option strings for the action.
|
|
47
|
+
* - `dest` Attribute to hold the created object(s)
|
|
48
|
+
* - `nargs` The number of command-line arguments that should be consumed.
|
|
49
|
+
* By default, one argument will be consumed and a single value will be
|
|
50
|
+
* produced.
|
|
51
|
+
* - `constant` Default value for an action with no value.
|
|
52
|
+
* - `defaultValue` The value to be produced if the option is not specified.
|
|
53
|
+
* - `type` Cast to 'string'|'int'|'float'|'complex'|function (string). If
|
|
54
|
+
* None, 'string'.
|
|
55
|
+
* - `choices` The choices available.
|
|
56
|
+
* - `required` True if the action must always be specified at the command
|
|
57
|
+
* line.
|
|
58
|
+
* - `help` The help describing the argument.
|
|
59
|
+
* - `metavar` The name to be used for the option's argument with the help
|
|
60
|
+
* string. If None, the 'dest' value will be used as the name.
|
|
61
|
+
*
|
|
62
|
+
* ##### nargs supported values:
|
|
63
|
+
*
|
|
64
|
+
* - `N` (an integer) consumes N arguments (and produces a list)
|
|
65
|
+
* - `?` consumes zero or one arguments
|
|
66
|
+
* - `*` consumes zero or more arguments (and produces a list)
|
|
67
|
+
* - `+` consumes one or more arguments (and produces a list)
|
|
68
|
+
*
|
|
69
|
+
* Note: that the difference between the default and nargs=1 is that with the
|
|
70
|
+
* default, a single value will be produced, while with nargs=1, a list
|
|
71
|
+
* containing a single value will be produced.
|
|
72
|
+
**/
|
|
73
|
+
var Action = module.exports = function Action(options) {
|
|
74
|
+
options = options || {};
|
|
75
|
+
this.optionStrings = options.optionStrings || [];
|
|
76
|
+
this.dest = options.dest;
|
|
77
|
+
this.nargs = options.nargs !== undefined ? options.nargs : null;
|
|
78
|
+
this.constant = options.constant !== undefined ? options.constant : null;
|
|
79
|
+
this.defaultValue = options.defaultValue;
|
|
80
|
+
this.type = options.type !== undefined ? options.type : null;
|
|
81
|
+
this.choices = options.choices !== undefined ? options.choices : null;
|
|
82
|
+
this.required = options.required !== undefined ? options.required: false;
|
|
83
|
+
this.help = options.help !== undefined ? options.help : null;
|
|
84
|
+
this.metavar = options.metavar !== undefined ? options.metavar : null;
|
|
85
|
+
|
|
86
|
+
if (!(this.optionStrings instanceof Array)) {
|
|
87
|
+
throw new Error('optionStrings should be an array');
|
|
88
|
+
}
|
|
89
|
+
if (this.required !== undefined && typeof(this.required) !== 'boolean') {
|
|
90
|
+
throw new Error('required should be a boolean');
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Action#getName -> String
|
|
96
|
+
*
|
|
97
|
+
* Tells action name
|
|
98
|
+
**/
|
|
99
|
+
Action.prototype.getName = function () {
|
|
100
|
+
if (this.optionStrings.length > 0) {
|
|
101
|
+
return this.optionStrings.join('/');
|
|
102
|
+
} else if (this.metavar !== null && this.metavar !== $$.SUPPRESS) {
|
|
103
|
+
return this.metavar;
|
|
104
|
+
} else if (this.dest !== undefined && this.dest !== $$.SUPPRESS) {
|
|
105
|
+
return this.dest;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Action#isOptional -> Boolean
|
|
112
|
+
*
|
|
113
|
+
* Return true if optional
|
|
114
|
+
**/
|
|
115
|
+
Action.prototype.isOptional = function () {
|
|
116
|
+
return !this.isPositional();
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Action#isPositional -> Boolean
|
|
121
|
+
*
|
|
122
|
+
* Return true if positional
|
|
123
|
+
**/
|
|
124
|
+
Action.prototype.isPositional = function () {
|
|
125
|
+
return (this.optionStrings.length === 0);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Action#call(parser, namespace, values, optionString) -> Void
|
|
130
|
+
* - parser (ArgumentParser): current parser
|
|
131
|
+
* - namespace (Namespace): namespace for output data
|
|
132
|
+
* - values (Array): parsed values
|
|
133
|
+
* - optionString (Array): input option string(not parsed)
|
|
134
|
+
*
|
|
135
|
+
* Call the action. Should be implemented in inherited classes
|
|
136
|
+
*
|
|
137
|
+
* ##### Example
|
|
138
|
+
*
|
|
139
|
+
* ActionCount.prototype.call = function (parser, namespace, values, optionString) {
|
|
140
|
+
* namespace.set(this.dest, (namespace[this.dest] || 0) + 1);
|
|
141
|
+
* };
|
|
142
|
+
*
|
|
143
|
+
**/
|
|
144
|
+
Action.prototype.call = function () {
|
|
145
|
+
throw new Error('.call() not defined');// Not Implemented error
|
|
146
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionAppend
|
|
3
|
+
*
|
|
4
|
+
* This action stores a list, and appends each argument value to the list.
|
|
5
|
+
* This is useful to allow an option to be specified multiple times.
|
|
6
|
+
* This class inherided from [[Action]]
|
|
7
|
+
*
|
|
8
|
+
**/
|
|
9
|
+
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var util = require('util');
|
|
13
|
+
|
|
14
|
+
var Action = require('../action');
|
|
15
|
+
|
|
16
|
+
// Constants
|
|
17
|
+
var $$ = require('../const');
|
|
18
|
+
|
|
19
|
+
/*:nodoc:*
|
|
20
|
+
* new ActionAppend(options)
|
|
21
|
+
* - options (object): options hash see [[Action.new]]
|
|
22
|
+
*
|
|
23
|
+
* Note: options.nargs should be optional for constants
|
|
24
|
+
* and more then zero for other
|
|
25
|
+
**/
|
|
26
|
+
var ActionAppend = module.exports = function ActionAppend(options) {
|
|
27
|
+
options = options || {};
|
|
28
|
+
if (this.nargs <= 0) {
|
|
29
|
+
throw new Error('nargs for append actions must be > 0; if arg ' +
|
|
30
|
+
'strings are not supplying the value to append, ' +
|
|
31
|
+
'the append const action may be more appropriate');
|
|
32
|
+
}
|
|
33
|
+
if (!!this.constant && this.nargs !== $$.OPTIONAL) {
|
|
34
|
+
throw new Error('nargs must be OPTIONAL to supply const');
|
|
35
|
+
}
|
|
36
|
+
Action.call(this, options);
|
|
37
|
+
};
|
|
38
|
+
util.inherits(ActionAppend, Action);
|
|
39
|
+
|
|
40
|
+
/*:nodoc:*
|
|
41
|
+
* ActionAppend#call(parser, namespace, values, optionString) -> Void
|
|
42
|
+
* - parser (ArgumentParser): current parser
|
|
43
|
+
* - namespace (Namespace): namespace for output data
|
|
44
|
+
* - values (Array): parsed values
|
|
45
|
+
* - optionString (Array): input option string(not parsed)
|
|
46
|
+
*
|
|
47
|
+
* Call the action. Save result in namespace object
|
|
48
|
+
**/
|
|
49
|
+
ActionAppend.prototype.call = function (parser, namespace, values) {
|
|
50
|
+
var items = [].concat(namespace[this.dest] || []); // or _.clone
|
|
51
|
+
items.push(values);
|
|
52
|
+
namespace.set(this.dest, items);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionAppendConstant
|
|
3
|
+
*
|
|
4
|
+
* This stores a list, and appends the value specified by
|
|
5
|
+
* the const keyword argument to the list.
|
|
6
|
+
* (Note that the const keyword argument defaults to null.)
|
|
7
|
+
* The 'appendConst' action is typically useful when multiple
|
|
8
|
+
* arguments need to store constants to the same list.
|
|
9
|
+
*
|
|
10
|
+
* This class inherited from [[Action]]
|
|
11
|
+
**/
|
|
12
|
+
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
var util = require('util');
|
|
16
|
+
|
|
17
|
+
var Action = require('../../action');
|
|
18
|
+
|
|
19
|
+
/*:nodoc:*
|
|
20
|
+
* new ActionAppendConstant(options)
|
|
21
|
+
* - options (object): options hash see [[Action.new]]
|
|
22
|
+
*
|
|
23
|
+
**/
|
|
24
|
+
var ActionAppendConstant = module.exports = function ActionAppendConstant(options) {
|
|
25
|
+
options = options || {};
|
|
26
|
+
options.nargs = 0;
|
|
27
|
+
if (options.constant === undefined) {
|
|
28
|
+
throw new Error('constant option is required for appendAction');
|
|
29
|
+
}
|
|
30
|
+
Action.call(this, options);
|
|
31
|
+
};
|
|
32
|
+
util.inherits(ActionAppendConstant, Action);
|
|
33
|
+
|
|
34
|
+
/*:nodoc:*
|
|
35
|
+
* ActionAppendConstant#call(parser, namespace, values, optionString) -> Void
|
|
36
|
+
* - parser (ArgumentParser): current parser
|
|
37
|
+
* - namespace (Namespace): namespace for output data
|
|
38
|
+
* - values (Array): parsed values
|
|
39
|
+
* - optionString (Array): input option string(not parsed)
|
|
40
|
+
*
|
|
41
|
+
* Call the action. Save result in namespace object
|
|
42
|
+
**/
|
|
43
|
+
ActionAppendConstant.prototype.call = function (parser, namespace) {
|
|
44
|
+
var items = [].concat(namespace[this.dest] || []);
|
|
45
|
+
items.push(this.constant);
|
|
46
|
+
namespace.set(this.dest, items);
|
|
47
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionCount
|
|
3
|
+
*
|
|
4
|
+
* This counts the number of times a keyword argument occurs.
|
|
5
|
+
* For example, this is useful for increasing verbosity levels
|
|
6
|
+
*
|
|
7
|
+
* This class inherided from [[Action]]
|
|
8
|
+
*
|
|
9
|
+
**/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var util = require('util');
|
|
13
|
+
|
|
14
|
+
var Action = require('../action');
|
|
15
|
+
|
|
16
|
+
/*:nodoc:*
|
|
17
|
+
* new ActionCount(options)
|
|
18
|
+
* - options (object): options hash see [[Action.new]]
|
|
19
|
+
*
|
|
20
|
+
**/
|
|
21
|
+
var ActionCount = module.exports = function ActionCount(options) {
|
|
22
|
+
options = options || {};
|
|
23
|
+
options.nargs = 0;
|
|
24
|
+
|
|
25
|
+
Action.call(this, options);
|
|
26
|
+
};
|
|
27
|
+
util.inherits(ActionCount, Action);
|
|
28
|
+
|
|
29
|
+
/*:nodoc:*
|
|
30
|
+
* ActionCount#call(parser, namespace, values, optionString) -> Void
|
|
31
|
+
* - parser (ArgumentParser): current parser
|
|
32
|
+
* - namespace (Namespace): namespace for output data
|
|
33
|
+
* - values (Array): parsed values
|
|
34
|
+
* - optionString (Array): input option string(not parsed)
|
|
35
|
+
*
|
|
36
|
+
* Call the action. Save result in namespace object
|
|
37
|
+
**/
|
|
38
|
+
ActionCount.prototype.call = function (parser, namespace) {
|
|
39
|
+
namespace.set(this.dest, (namespace[this.dest] || 0) + 1);
|
|
40
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionHelp
|
|
3
|
+
*
|
|
4
|
+
* Support action for printing help
|
|
5
|
+
* This class inherided from [[Action]]
|
|
6
|
+
**/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var util = require('util');
|
|
10
|
+
|
|
11
|
+
var Action = require('../action');
|
|
12
|
+
|
|
13
|
+
// Constants
|
|
14
|
+
var $$ = require('../const');
|
|
15
|
+
|
|
16
|
+
/*:nodoc:*
|
|
17
|
+
* new ActionHelp(options)
|
|
18
|
+
* - options (object): options hash see [[Action.new]]
|
|
19
|
+
*
|
|
20
|
+
**/
|
|
21
|
+
var ActionHelp = module.exports = function ActionHelp(options) {
|
|
22
|
+
options = options || {};
|
|
23
|
+
if (options.defaultValue !== null) {
|
|
24
|
+
options.defaultValue = options.defaultValue;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
options.defaultValue = $$.SUPPRESS;
|
|
28
|
+
}
|
|
29
|
+
options.dest = (options.dest !== null ? options.dest: $$.SUPPRESS);
|
|
30
|
+
options.nargs = 0;
|
|
31
|
+
Action.call(this, options);
|
|
32
|
+
|
|
33
|
+
};
|
|
34
|
+
util.inherits(ActionHelp, Action);
|
|
35
|
+
|
|
36
|
+
/*:nodoc:*
|
|
37
|
+
* ActionHelp#call(parser, namespace, values, optionString)
|
|
38
|
+
* - parser (ArgumentParser): current parser
|
|
39
|
+
* - namespace (Namespace): namespace for output data
|
|
40
|
+
* - values (Array): parsed values
|
|
41
|
+
* - optionString (Array): input option string(not parsed)
|
|
42
|
+
*
|
|
43
|
+
* Print help and exit
|
|
44
|
+
**/
|
|
45
|
+
ActionHelp.prototype.call = function (parser) {
|
|
46
|
+
parser.printHelp();
|
|
47
|
+
parser.exit();
|
|
48
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionStore
|
|
3
|
+
*
|
|
4
|
+
* This action just stores the argument’s value. This is the default action.
|
|
5
|
+
*
|
|
6
|
+
* This class inherited from [[Action]]
|
|
7
|
+
*
|
|
8
|
+
**/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
var util = require('util');
|
|
12
|
+
|
|
13
|
+
var Action = require('../action');
|
|
14
|
+
|
|
15
|
+
// Constants
|
|
16
|
+
var $$ = require('../const');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/*:nodoc:*
|
|
20
|
+
* new ActionStore(options)
|
|
21
|
+
* - options (object): options hash see [[Action.new]]
|
|
22
|
+
*
|
|
23
|
+
**/
|
|
24
|
+
var ActionStore = module.exports = function ActionStore(options) {
|
|
25
|
+
options = options || {};
|
|
26
|
+
if (this.nargs <= 0) {
|
|
27
|
+
throw new Error('nargs for store actions must be > 0; if you ' +
|
|
28
|
+
'have nothing to store, actions such as store ' +
|
|
29
|
+
'true or store const may be more appropriate');
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
if (this.constant !== undefined && this.nargs !== $$.OPTIONAL) {
|
|
33
|
+
throw new Error('nargs must be OPTIONAL to supply const');
|
|
34
|
+
}
|
|
35
|
+
Action.call(this, options);
|
|
36
|
+
};
|
|
37
|
+
util.inherits(ActionStore, Action);
|
|
38
|
+
|
|
39
|
+
/*:nodoc:*
|
|
40
|
+
* ActionStore#call(parser, namespace, values, optionString) -> Void
|
|
41
|
+
* - parser (ArgumentParser): current parser
|
|
42
|
+
* - namespace (Namespace): namespace for output data
|
|
43
|
+
* - values (Array): parsed values
|
|
44
|
+
* - optionString (Array): input option string(not parsed)
|
|
45
|
+
*
|
|
46
|
+
* Call the action. Save result in namespace object
|
|
47
|
+
**/
|
|
48
|
+
ActionStore.prototype.call = function (parser, namespace, values) {
|
|
49
|
+
namespace.set(this.dest, values);
|
|
50
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionStoreConstant
|
|
3
|
+
*
|
|
4
|
+
* This action stores the value specified by the const keyword argument.
|
|
5
|
+
* (Note that the const keyword argument defaults to the rather unhelpful null.)
|
|
6
|
+
* The 'store_const' action is most commonly used with optional
|
|
7
|
+
* arguments that specify some sort of flag.
|
|
8
|
+
*
|
|
9
|
+
* This class inherited from [[Action]]
|
|
10
|
+
**/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
var util = require('util');
|
|
14
|
+
|
|
15
|
+
var Action = require('../../action');
|
|
16
|
+
|
|
17
|
+
/*:nodoc:*
|
|
18
|
+
* new ActionStoreConstant(options)
|
|
19
|
+
* - options (object): options hash see [[Action.new]]
|
|
20
|
+
*
|
|
21
|
+
**/
|
|
22
|
+
var ActionStoreConstant = module.exports = function ActionStoreConstant(options) {
|
|
23
|
+
options = options || {};
|
|
24
|
+
options.nargs = 0;
|
|
25
|
+
if (options.constant === undefined) {
|
|
26
|
+
throw new Error('constant option is required for storeAction');
|
|
27
|
+
}
|
|
28
|
+
Action.call(this, options);
|
|
29
|
+
};
|
|
30
|
+
util.inherits(ActionStoreConstant, Action);
|
|
31
|
+
|
|
32
|
+
/*:nodoc:*
|
|
33
|
+
* ActionStoreConstant#call(parser, namespace, values, optionString) -> Void
|
|
34
|
+
* - parser (ArgumentParser): current parser
|
|
35
|
+
* - namespace (Namespace): namespace for output data
|
|
36
|
+
* - values (Array): parsed values
|
|
37
|
+
* - optionString (Array): input option string(not parsed)
|
|
38
|
+
*
|
|
39
|
+
* Call the action. Save result in namespace object
|
|
40
|
+
**/
|
|
41
|
+
ActionStoreConstant.prototype.call = function (parser, namespace) {
|
|
42
|
+
namespace.set(this.dest, this.constant);
|
|
43
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*:nodoc:*
|
|
2
|
+
* class ActionStoreFalse
|
|
3
|
+
*
|
|
4
|
+
* This action store the values False respectively.
|
|
5
|
+
* This is special cases of 'storeConst'
|
|
6
|
+
*
|
|
7
|
+
* This class inherited from [[Action]]
|
|
8
|
+
**/
|
|
9
|
+
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var util = require('util');
|
|
13
|
+
|
|
14
|
+
var ActionStoreConstant = require('./constant');
|
|
15
|
+
|
|
16
|
+
/*:nodoc:*
|
|
17
|
+
* new ActionStoreFalse(options)
|
|
18
|
+
* - options (object): hash of options see [[Action.new]]
|
|
19
|
+
*
|
|
20
|
+
**/
|
|
21
|
+
var ActionStoreFalse = module.exports = function ActionStoreFalse(options) {
|
|
22
|
+
options = options || {};
|
|
23
|
+
options.constant = false;
|
|
24
|
+
options.defaultValue = options.defaultValue !== null ? options.defaultValue: true;
|
|
25
|
+
ActionStoreConstant.call(this, options);
|
|
26
|
+
};
|
|
27
|
+
util.inherits(ActionStoreFalse, ActionStoreConstant);
|