opal 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/lib/opal/cli.rb +9 -1
  4. data/lib/opal/cli_options.rb +12 -3
  5. data/lib/opal/cli_runners/nodejs.rb +3 -2
  6. data/lib/opal/version.rb +1 -1
  7. data/opal/corelib/kernel.rb +7 -0
  8. data/opal/corelib/runtime.js +4 -0
  9. data/spec/lib/cli_spec.rb +16 -0
  10. data/stdlib/nodejs.rb +1 -2
  11. data/stdlib/nodejs/{process.rb → kernel.rb} +7 -4
  12. data/stdlib/nodejs/node_modules/.bin/js-yaml +140 -0
  13. data/stdlib/nodejs/node_modules/glob/LICENSE +15 -0
  14. data/stdlib/nodejs/node_modules/glob/README.md +357 -0
  15. data/stdlib/nodejs/node_modules/glob/common.js +177 -0
  16. data/stdlib/nodejs/node_modules/glob/glob.js +649 -0
  17. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
  18. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/LICENSE +15 -0
  19. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/README.md +37 -0
  20. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +44 -0
  21. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
  22. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
  23. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +52 -0
  24. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
  25. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
  26. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +61 -0
  27. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +97 -0
  28. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  29. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/README.md +42 -0
  30. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  31. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  32. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +51 -0
  33. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +25 -0
  34. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  35. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
  36. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  37. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/README.md +216 -0
  38. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
  39. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
  40. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
  41. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
  42. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
  43. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
  44. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  45. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  46. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  47. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +4 -0
  48. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  49. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  50. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  51. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  52. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
  53. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  54. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +4 -0
  55. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  56. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  57. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  58. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  59. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
  60. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  61. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
  62. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
  63. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
  64. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
  65. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
  66. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
  67. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
  68. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
  69. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
  70. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
  71. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
  72. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
  73. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
  74. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +60 -0
  75. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  76. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
  77. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  78. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  79. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +27 -0
  80. data/stdlib/nodejs/node_modules/glob/node_modules/once/README.md +51 -0
  81. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
  82. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  83. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +52 -0
  84. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  85. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  86. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +21 -0
  87. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +60 -0
  88. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +23 -0
  89. data/stdlib/nodejs/node_modules/glob/package.json +72 -0
  90. data/stdlib/nodejs/node_modules/glob/sync.js +409 -0
  91. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +277 -0
  92. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +21 -0
  93. data/stdlib/nodejs/node_modules/js-yaml/README.md +288 -0
  94. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +140 -0
  95. data/stdlib/nodejs/node_modules/js-yaml/bower.json +23 -0
  96. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.js +3666 -0
  97. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +3 -0
  98. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +102 -0
  99. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +18 -0
  100. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +31 -0
  101. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +22 -0
  102. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +18 -0
  103. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +197 -0
  104. data/stdlib/nodejs/node_modules/js-yaml/index.js +7 -0
  105. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +39 -0
  106. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +62 -0
  107. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +554 -0
  108. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
  109. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +1581 -0
  110. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
  111. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
  112. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  113. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  114. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  115. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  116. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  117. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  118. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +133 -0
  119. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +37 -0
  120. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +110 -0
  121. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +183 -0
  122. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +85 -0
  123. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +84 -0
  124. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +27 -0
  125. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  126. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  127. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
  128. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +56 -0
  129. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +61 -0
  130. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  131. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +33 -0
  132. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  133. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +98 -0
  134. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esparse +117 -0
  135. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esvalidate +177 -0
  136. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +115 -0
  137. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
  138. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
  139. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
  140. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
  141. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
  142. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
  143. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
  144. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
  145. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
  146. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
  147. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
  148. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
  149. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
  150. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
  151. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
  152. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
  153. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
  154. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
  155. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
  156. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
  157. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
  158. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
  159. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
  160. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
  161. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
  162. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
  163. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
  164. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
  165. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
  166. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1168 -0
  167. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
  168. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
  169. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +798 -0
  170. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
  171. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +2 -0
  172. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +8 -0
  173. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +825 -0
  174. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +33 -0
  175. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
  176. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +10 -0
  177. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +26 -0
  178. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
  179. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  180. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +107 -0
  181. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +23 -0
  182. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +22 -0
  183. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +69 -0
  184. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +6 -0
  185. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1415 -0
  186. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +62 -0
  187. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
  188. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
  189. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
  190. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
  191. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +69 -0
  192. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
  193. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
  194. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
  195. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
  196. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
  197. data/stdlib/nodejs/node_modules/js-yaml/package.json +83 -0
  198. data/{package.json → stdlib/nodejs/package.json} +0 -3
  199. data/stdlib/phantomjs.rb +1 -6
  200. data/tasks/testing.rake +1 -4
  201. metadata +191 -6
  202. 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);