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.
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);