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,36 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: arguments'
9
+ });
10
+ parser.addArgument(
11
+ [ '-f', '--foo' ],
12
+ {
13
+ help: 'foo bar'
14
+ }
15
+ );
16
+ parser.addArgument(
17
+ [ '-b', '--bar' ],
18
+ {
19
+ help: 'bar foo'
20
+ }
21
+ );
22
+
23
+
24
+ parser.printHelp();
25
+ console.log('-----------');
26
+
27
+ var args;
28
+ args = parser.parseArgs('-f 1 -b2'.split(' '));
29
+ console.dir(args);
30
+ console.log('-----------');
31
+ args = parser.parseArgs('-f=3 --bar=4'.split(' '));
32
+ console.dir(args);
33
+ console.log('-----------');
34
+ args = parser.parseArgs('--foo 5 --bar 6'.split(' '));
35
+ console.dir(args);
36
+ console.log('-----------');
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: choice'
9
+ });
10
+
11
+ parser.addArgument(['foo'], {choices: 'abc'});
12
+
13
+ parser.printHelp();
14
+ console.log('-----------');
15
+
16
+ var args;
17
+ args = parser.parseArgs(['c']);
18
+ console.dir(args);
19
+ console.log('-----------');
20
+ parser.parseArgs(['X']);
21
+ console.dir(args);
22
+
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: constant'
9
+ });
10
+
11
+ parser.addArgument(
12
+ [ '-a'],
13
+ {
14
+ action: 'storeConst',
15
+ dest: 'answer',
16
+ help: 'store constant',
17
+ constant: 42
18
+ }
19
+ );
20
+ parser.addArgument(
21
+ [ '--str' ],
22
+ {
23
+ action: 'appendConst',
24
+ dest: 'types',
25
+ help: 'append constant "str" to types',
26
+ constant: 'str'
27
+ }
28
+ );
29
+ parser.addArgument(
30
+ [ '--int' ],
31
+ {
32
+ action: 'appendConst',
33
+ dest: 'types',
34
+ help: 'append constant "int" to types',
35
+ constant: 'int'
36
+ }
37
+ );
38
+
39
+ parser.addArgument(
40
+ [ '--true' ],
41
+ {
42
+ action: 'storeTrue',
43
+ help: 'store true constant'
44
+ }
45
+ );
46
+ parser.addArgument(
47
+ [ '--false' ],
48
+ {
49
+ action: 'storeFalse',
50
+ help: 'store false constant'
51
+ }
52
+ );
53
+
54
+ parser.printHelp();
55
+ console.log('-----------');
56
+
57
+ var args;
58
+ args = parser.parseArgs('-a --str --int --true'.split(' '));
59
+ console.dir(args);
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: help',
9
+ epilog: 'help epilog',
10
+ prog: 'help_example_prog',
11
+ usage: 'Usage %(prog)s <agrs>'
12
+ });
13
+ parser.printHelp();
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: nargs'
9
+ });
10
+ parser.addArgument(
11
+ [ '-f', '--foo' ],
12
+ {
13
+ help: 'foo bar',
14
+ nargs: 1
15
+ }
16
+ );
17
+ parser.addArgument(
18
+ [ '-b', '--bar' ],
19
+ {
20
+ help: 'bar foo',
21
+ nargs: '*'
22
+ }
23
+ );
24
+
25
+ parser.printHelp();
26
+ console.log('-----------');
27
+
28
+ var args;
29
+ args = parser.parseArgs('--foo a --bar c d'.split(' '));
30
+ console.dir(args);
31
+ console.log('-----------');
32
+ args = parser.parseArgs('--bar b c f --foo a'.split(' '));
33
+ console.dir(args);
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+
6
+ var args;
7
+ var parent_parser = new ArgumentParser({ addHelp: false });
8
+ // note addHelp:false to prevent duplication of the -h option
9
+ parent_parser.addArgument(
10
+ ['--parent'],
11
+ { type: 'int', description: 'parent' }
12
+ );
13
+
14
+ var foo_parser = new ArgumentParser({
15
+ parents: [ parent_parser ],
16
+ description: 'child1'
17
+ });
18
+ foo_parser.addArgument(['foo']);
19
+ args = foo_parser.parseArgs(['--parent', '2', 'XXX']);
20
+ console.log(args);
21
+
22
+ var bar_parser = new ArgumentParser({
23
+ parents: [ parent_parser ],
24
+ description: 'child2'
25
+ });
26
+ bar_parser.addArgument(['--bar']);
27
+ args = bar_parser.parseArgs(['--bar', 'YYY']);
28
+ console.log(args);
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: prefix_chars',
9
+ prefixChars: '-+'
10
+ });
11
+ parser.addArgument(['+f', '++foo']);
12
+ parser.addArgument(['++bar'], {action: 'storeTrue'});
13
+
14
+ parser.printHelp();
15
+ console.log('-----------');
16
+
17
+ var args;
18
+ args = parser.parseArgs(['+f', '1']);
19
+ console.dir(args);
20
+ args = parser.parseArgs(['++bar']);
21
+ console.dir(args);
22
+ args = parser.parseArgs(['++foo', '2', '++bar']);
23
+ console.dir(args);
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
+ var parser = new ArgumentParser({
6
+ version: '0.0.1',
7
+ addHelp: true,
8
+ description: 'Argparse examples: sub-commands'
9
+ });
10
+
11
+ var subparsers = parser.addSubparsers({
12
+ title: 'subcommands',
13
+ dest: "subcommand_name"
14
+ });
15
+
16
+ var bar = subparsers.addParser('c1', {addHelp: true, help: 'c1 help'});
17
+ bar.addArgument(
18
+ [ '-f', '--foo' ],
19
+ {
20
+ action: 'store',
21
+ help: 'foo3 bar3'
22
+ }
23
+ );
24
+ var bar = subparsers.addParser(
25
+ 'c2',
26
+ {aliases: ['co'], addHelp: true, help: 'c2 help'}
27
+ );
28
+ bar.addArgument(
29
+ [ '-b', '--bar' ],
30
+ {
31
+ action: 'store',
32
+ type: 'int',
33
+ help: 'foo3 bar3'
34
+ }
35
+ );
36
+ parser.printHelp();
37
+ console.log('-----------');
38
+
39
+ var args;
40
+ args = parser.parseArgs('c1 -f 2'.split(' '));
41
+ console.dir(args);
42
+ console.log('-----------');
43
+ args = parser.parseArgs('c2 -b 1'.split(' '));
44
+ console.dir(args);
45
+ console.log('-----------');
46
+ args = parser.parseArgs('co -b 1'.split(' '));
47
+ console.dir(args);
48
+ console.log('-----------');
49
+ parser.parseArgs(['c1', '-h']);
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+
3
+ 'use strict';
4
+
5
+
6
+ var ArgumentParser = require('../lib/argparse').ArgumentParser;
7
+ var parser = new ArgumentParser({ description: 'Process some integers.' });
8
+
9
+
10
+ function sum(arr) {
11
+ return arr.reduce(function (a, b) {
12
+ return a + b;
13
+ }, 0);
14
+ }
15
+ function max(arr) {
16
+ return Math.max.apply(Math, arr);
17
+ }
18
+
19
+
20
+ parser.addArgument(['integers'], {
21
+ metavar: 'N',
22
+ type: 'int',
23
+ nargs: '+',
24
+ help: 'an integer for the accumulator'
25
+ });
26
+ parser.addArgument(['--sum'], {
27
+ dest: 'accumulate',
28
+ action: 'storeConst',
29
+ constant: sum,
30
+ defaultValue: max,
31
+ help: 'sum the integers (default: find the max)'
32
+ });
33
+
34
+ var args = parser.parseArgs('--sum 1 2 -1'.split(' '));
35
+ console.log(args.accumulate(args.integers));
@@ -0,0 +1,270 @@
1
+ 'use strict';
2
+
3
+ var a, group, parser, helptext;
4
+
5
+ var assert = require('assert');
6
+ var _ = require('underscore');
7
+ _.str = require('underscore.string');
8
+ var print = function () {
9
+ return console.log.apply(console, arguments);
10
+ };
11
+ // print = function () {};
12
+
13
+ var argparse = require('argparse');
14
+
15
+ print("TEST argparse.ArgumentDefaultsHelpFormatter");
16
+
17
+ parser = new argparse.ArgumentParser({
18
+ debug: true,
19
+ formatterClass: argparse.ArgumentDefaultsHelpFormatter,
20
+ description: 'description'
21
+ });
22
+
23
+ parser.addArgument(['--foo'], {
24
+ help: 'foo help - oh and by the way, %(defaultValue)s'
25
+ });
26
+
27
+ parser.addArgument(['--bar'], {
28
+ action: 'storeTrue',
29
+ help: 'bar help'
30
+ });
31
+
32
+ parser.addArgument(['spam'], {
33
+ help: 'spam help'
34
+ });
35
+
36
+ parser.addArgument(['badger'], {
37
+ nargs: '?',
38
+ defaultValue: 'wooden',
39
+ help: 'badger help'
40
+ });
41
+
42
+ group = parser.addArgumentGroup({
43
+ title: 'title',
44
+ description: 'group description'
45
+ });
46
+
47
+ group.addArgument(['--baz'], {
48
+ type: 'int',
49
+ defaultValue: 42,
50
+ help: 'baz help'
51
+ });
52
+
53
+ helptext = parser.formatHelp();
54
+ print(helptext);
55
+ // test selected clips
56
+ assert(helptext.match(/badger help \(default: wooden\)/));
57
+ assert(helptext.match(/foo help - oh and by the way, null/));
58
+ assert(helptext.match(/bar help \(default: false\)/));
59
+ assert(helptext.match(/title:\n {2}group description/)); // test indent
60
+ assert(helptext.match(/baz help \(default: 42\)/im));
61
+
62
+ /*
63
+ usage: PROG [-h] [--foo FOO] [--bar] [--baz BAZ] spam [badger]
64
+
65
+ description
66
+
67
+ positional arguments:
68
+ spam spam help
69
+ badger badger help (default: wooden)
70
+
71
+ optional arguments:
72
+ -h, --help show this help message and exit
73
+ --foo FOO foo help - oh and by the way, null
74
+ --bar bar help (default: false)
75
+
76
+ title:
77
+ group description
78
+
79
+ --baz BAZ baz help (default: 42)
80
+ */
81
+
82
+ print("TEST argparse.RawDescriptionHelpFormatter");
83
+
84
+ parser = new argparse.ArgumentParser({
85
+ debug: true,
86
+ prog: 'PROG',
87
+ formatterClass: argparse.RawDescriptionHelpFormatter,
88
+ description: 'Keep the formatting\n' +
89
+ ' exactly as it is written\n' +
90
+ '\n' +
91
+ 'here\n'
92
+ });
93
+
94
+ a = parser.addArgument(['--foo'], {
95
+ help: ' foo help should not\n' +
96
+ ' retain this odd formatting'
97
+ });
98
+
99
+ parser.addArgument(['spam'], {
100
+ 'help': 'spam help'
101
+ });
102
+
103
+ group = parser.addArgumentGroup({
104
+ title: 'title',
105
+ description: ' This text\n' +
106
+ ' should be indented\n' +
107
+ ' exactly like it is here\n'
108
+ });
109
+
110
+ group.addArgument(['--bar'], {
111
+ help: 'bar help'
112
+ });
113
+
114
+ helptext = parser.formatHelp();
115
+ print(helptext);
116
+ // test selected clips
117
+ assert(helptext.match(parser.description));
118
+ assert.equal(helptext.match(a.help), null);
119
+ assert(helptext.match(/foo help should not retain this odd formatting/));
120
+
121
+ /*
122
+ class TestHelpRawDescription(HelpTestCase):
123
+ """Test the RawTextHelpFormatter"""
124
+ ....
125
+
126
+ usage: PROG [-h] [--foo FOO] [--bar BAR] spam
127
+
128
+ Keep the formatting
129
+ exactly as it is written
130
+
131
+ here
132
+
133
+ positional arguments:
134
+ spam spam help
135
+
136
+ optional arguments:
137
+ -h, --help show this help message and exit
138
+ --foo FOO foo help should not retain this odd formatting
139
+
140
+ title:
141
+ This text
142
+ should be indented
143
+ exactly like it is here
144
+
145
+ --bar BAR bar help
146
+ */
147
+
148
+
149
+ print("TEST argparse.RawTextHelpFormatter");
150
+
151
+ parser = new argparse.ArgumentParser({
152
+ debug: true,
153
+ prog: 'PROG',
154
+ formatterClass: argparse.RawTextHelpFormatter,
155
+ description: 'Keep the formatting\n' +
156
+ ' exactly as it is written\n' +
157
+ '\n' +
158
+ 'here\n'
159
+ });
160
+
161
+ parser.addArgument(['--baz'], {
162
+ help: ' baz help should also\n' +
163
+ 'appear as given here'
164
+ });
165
+
166
+ a = parser.addArgument(['--foo'], {
167
+ help: ' foo help should also\n' +
168
+ 'appear as given here'
169
+ });
170
+
171
+ parser.addArgument(['spam'], {
172
+ 'help': 'spam help'
173
+ });
174
+
175
+ group = parser.addArgumentGroup({
176
+ title: 'title',
177
+ description: ' This text\n' +
178
+ ' should be indented\n' +
179
+ ' exactly like it is here\n'
180
+ });
181
+
182
+ group.addArgument(['--bar'], {
183
+ help: 'bar help'
184
+ });
185
+
186
+ helptext = parser.formatHelp();
187
+ print(helptext);
188
+ // test selected clips
189
+ assert(helptext.match(parser.description));
190
+ assert(helptext.match(/( {14})appear as given here/gm));
191
+
192
+ /*
193
+ class TestHelpRawText(HelpTestCase):
194
+ """Test the RawTextHelpFormatter"""
195
+
196
+ usage: PROG [-h] [--foo FOO] [--bar BAR] spam
197
+
198
+ Keep the formatting
199
+ exactly as it is written
200
+
201
+ here
202
+
203
+ positional arguments:
204
+ spam spam help
205
+
206
+ optional arguments:
207
+ -h, --help show this help message and exit
208
+ --foo FOO foo help should also
209
+ appear as given here
210
+
211
+ title:
212
+ This text
213
+ should be indented
214
+ exactly like it is here
215
+
216
+ --bar BAR bar help
217
+ */
218
+
219
+
220
+ print("TEST metavar as a tuple");
221
+
222
+ parser = new argparse.ArgumentParser({
223
+ prog: 'PROG'
224
+ });
225
+
226
+ parser.addArgument(['-w'], {
227
+ help: 'w',
228
+ nargs: '+',
229
+ metavar: ['W1', 'W2']
230
+ });
231
+
232
+ parser.addArgument(['-x'], {
233
+ help: 'x',
234
+ nargs: '*',
235
+ metavar: ['X1', 'X2']
236
+ });
237
+
238
+ parser.addArgument(['-y'], {
239
+ help: 'y',
240
+ nargs: 3,
241
+ metavar: ['Y1', 'Y2', 'Y3']
242
+ });
243
+
244
+ parser.addArgument(['-z'], {
245
+ help: 'z',
246
+ nargs: '?',
247
+ metavar: ['Z1']
248
+ });
249
+
250
+ helptext = parser.formatHelp();
251
+ print(helptext);
252
+ var ustring = 'PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]';
253
+ ustring = ustring.replace(/\[/g, '\\[').replace(/\]/g, '\\]');
254
+ // print(ustring)
255
+ assert(helptext.match(new RegExp(ustring)));
256
+
257
+ /*
258
+ class TestHelpTupleMetavar(HelpTestCase):
259
+ """Test specifying metavar as a tuple"""
260
+
261
+ usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]
262
+
263
+ optional arguments:
264
+ -h, --help show this help message and exit
265
+ -w W1 [W2 ...] w
266
+ -x [X1 [X2 ...]] x
267
+ -y Y1 Y2 Y3 y
268
+ -z [Z1] z
269
+ */
270
+