traceur-rb 0.0.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 (255) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +8 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +87 -0
  10. data/Rakefile +2 -0
  11. data/lib/js/compile.js +31 -0
  12. data/lib/traceur-rb.rb +1 -0
  13. data/lib/traceur.rb +43 -0
  14. data/lib/traceur/compilation_options.rb +65 -0
  15. data/lib/traceur/compiler.rb +33 -0
  16. data/lib/traceur/configuration.rb +47 -0
  17. data/lib/traceur/node.rb +26 -0
  18. data/lib/traceur/node/command_result.rb +28 -0
  19. data/lib/traceur/node/runner.rb +40 -0
  20. data/lib/traceur/version.rb +3 -0
  21. data/spec/examples/classes.js +12 -0
  22. data/spec/integration/examples_spec.rb +28 -0
  23. data/spec/spec_helper.rb +1 -0
  24. data/spec/traceur/compilation_options_spec.rb +31 -0
  25. data/spec/traceur/configuration_spec.rb +54 -0
  26. data/spec/traceur/node_spec.rb +15 -0
  27. data/traceur-rb.gemspec +25 -0
  28. data/vendor/node_modules/.bin/traceur +3 -0
  29. data/vendor/node_modules/traceur/README.md +40 -0
  30. data/vendor/node_modules/traceur/bin/traceur-runtime.js +2101 -0
  31. data/vendor/node_modules/traceur/bin/traceur.js +23034 -0
  32. data/vendor/node_modules/traceur/node_modules/.bin/semver +125 -0
  33. data/vendor/node_modules/traceur/node_modules/commander/Readme.md +208 -0
  34. data/vendor/node_modules/traceur/node_modules/commander/index.js +852 -0
  35. data/vendor/node_modules/traceur/node_modules/commander/package.json +40 -0
  36. data/vendor/node_modules/traceur/node_modules/q-io/.npmignore +1 -0
  37. data/vendor/node_modules/traceur/node_modules/q-io/.travis.yml +3 -0
  38. data/vendor/node_modules/traceur/node_modules/q-io/CHANGES.md +122 -0
  39. data/vendor/node_modules/traceur/node_modules/q-io/LICENSE +19 -0
  40. data/vendor/node_modules/traceur/node_modules/q-io/README.md +928 -0
  41. data/vendor/node_modules/traceur/node_modules/q-io/buffer-stream.js +59 -0
  42. data/vendor/node_modules/traceur/node_modules/q-io/coverage-report.js +44 -0
  43. data/vendor/node_modules/traceur/node_modules/q-io/deprecate.js +51 -0
  44. data/vendor/node_modules/traceur/node_modules/q-io/fs-boot.js +307 -0
  45. data/vendor/node_modules/traceur/node_modules/q-io/fs-common.js +499 -0
  46. data/vendor/node_modules/traceur/node_modules/q-io/fs-mock.js +547 -0
  47. data/vendor/node_modules/traceur/node_modules/q-io/fs-root.js +105 -0
  48. data/vendor/node_modules/traceur/node_modules/q-io/fs.js +355 -0
  49. data/vendor/node_modules/traceur/node_modules/q-io/fs2http.js +65 -0
  50. data/vendor/node_modules/traceur/node_modules/q-io/http-apps.js +152 -0
  51. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/chain.js +24 -0
  52. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/content.js +93 -0
  53. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/cookie.js +154 -0
  54. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/decorators.js +178 -0
  55. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/fs.js +417 -0
  56. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/html.js +58 -0
  57. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/json.js +78 -0
  58. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/negotiate.js +120 -0
  59. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/proxy.js +27 -0
  60. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/redirect.js +209 -0
  61. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/route.js +125 -0
  62. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/status.js +175 -0
  63. data/vendor/node_modules/traceur/node_modules/q-io/http-cookie.js +75 -0
  64. data/vendor/node_modules/traceur/node_modules/q-io/http.js +378 -0
  65. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/.npmignore +11 -0
  66. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/.travis.yml +4 -0
  67. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/CHANGES.md +78 -0
  68. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/LICENSE.md +21 -0
  69. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/README.md +1285 -0
  70. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/collections.js +22 -0
  71. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/dict.js +142 -0
  72. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-map.js +57 -0
  73. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-set.js +183 -0
  74. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-collection.js +261 -0
  75. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-map.js +186 -0
  76. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-order.js +55 -0
  77. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-set.js +59 -0
  78. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/heap.js +236 -0
  79. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/iterator.js +371 -0
  80. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/list.js +435 -0
  81. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/array-changes.js +247 -0
  82. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/map-changes.js +147 -0
  83. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/property-changes.js +448 -0
  84. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/range-changes.js +139 -0
  85. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-map.js +79 -0
  86. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-set.js +142 -0
  87. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/map.js +60 -0
  88. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/multi-map.js +41 -0
  89. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/package.json +12 -0
  90. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync +7 -0
  91. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync.patch +48 -0
  92. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/weak-map.js +590 -0
  93. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/package.json +49 -0
  94. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/set.js +173 -0
  95. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-array.js +274 -0
  96. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-function.js +59 -0
  97. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-object.js +538 -0
  98. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-regexp.js +14 -0
  99. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim.js +6 -0
  100. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-map.js +49 -0
  101. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-set.js +51 -0
  102. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array.js +269 -0
  103. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-map.js +61 -0
  104. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-set.js +736 -0
  105. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/tree-log.js +40 -0
  106. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/weak-map.js +1 -0
  107. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/LICENSE +19 -0
  108. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/README.md +66 -0
  109. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/mime.js +114 -0
  110. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/package.json +35 -0
  111. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/test.js +84 -0
  112. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/mime.types +1588 -0
  113. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/node.types +77 -0
  114. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/CHANGES +15 -0
  115. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/LICENSE +19 -0
  116. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/README +96 -0
  117. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/lib/mimeparse.js +166 -0
  118. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/package.json +43 -0
  119. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/CONTRIBUTING.md +40 -0
  120. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/LICENSE +19 -0
  121. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/README.md +813 -0
  122. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/compare-with-callbacks.js +71 -0
  123. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/scenarios.js +36 -0
  124. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/package.json +93 -0
  125. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/q.js +1937 -0
  126. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/queue.js +35 -0
  127. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/.gitmodules +6 -0
  128. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/History.md +36 -0
  129. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Makefile +7 -0
  130. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Readme.md +38 -0
  131. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/benchmark.js +32 -0
  132. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/examples.js +39 -0
  133. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/index.js +2 -0
  134. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/lib/querystring.js +123 -0
  135. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/package.json +19 -0
  136. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.gitmodules +3 -0
  137. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.npmignore +3 -0
  138. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/History.md +128 -0
  139. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Makefile +53 -0
  140. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Readme.md +61 -0
  141. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/bin/expresso +856 -0
  142. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/api.html +1080 -0
  143. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.html +377 -0
  144. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.md +290 -0
  145. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/foot.html +3 -0
  146. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/head.html +42 -0
  147. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/bar.js +4 -0
  148. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/foo.js +16 -0
  149. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/package.json +12 -0
  150. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/assert.test.js +91 -0
  151. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/async.test.js +12 -0
  152. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/bar.test.js +13 -0
  153. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/foo.test.js +14 -0
  154. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/http.test.js +146 -0
  155. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/async.test.js +39 -0
  156. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/http.test.js +48 -0
  157. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/.gitmodules +3 -0
  158. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/History.md +22 -0
  159. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Makefile +6 -0
  160. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Readme.md +248 -0
  161. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/examples/runner.js +53 -0
  162. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/index.js +2 -0
  163. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/eql.js +91 -0
  164. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/should.js +548 -0
  165. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/package.json +8 -0
  166. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/test/should.test.js +358 -0
  167. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/test/querystring.test.js +133 -0
  168. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/.npmignore +3 -0
  169. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/.travis.yml +4 -0
  170. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/LICENSE.md +20 -0
  171. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/README.md +33 -0
  172. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/package.json +37 -0
  173. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/test/url2-spec.js +125 -0
  174. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/url2.js +151 -0
  175. data/vendor/node_modules/traceur/node_modules/q-io/package.json +51 -0
  176. data/vendor/node_modules/traceur/node_modules/q-io/reader.js +133 -0
  177. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/boot-directory-spec.js +47 -0
  178. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/contains-spec.js +11 -0
  179. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/fixtures/hello.txt +1 -0
  180. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/issues/1-spec.js +33 -0
  181. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/make-tree-spec.js +92 -0
  182. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/append-spec.js +41 -0
  183. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/copy-tree-spec.js +57 -0
  184. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/fixture/hello.txt +1 -0
  185. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/link-spec.js +70 -0
  186. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/make-tree-spec.js +109 -0
  187. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/merge-spec.js +67 -0
  188. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/move-spec.js +219 -0
  189. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/object-spec.js +20 -0
  190. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/range-spec.js +26 -0
  191. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/read-spec.js +40 -0
  192. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-directory-spec.js +37 -0
  193. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-tree-spec.js +39 -0
  194. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/root-spec.js +32 -0
  195. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/stat-spec.js +26 -0
  196. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/symbolic-link-spec.js +86 -0
  197. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/working-directory-spec.js +31 -0
  198. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/write-spec.js +73 -0
  199. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.js +23 -0
  200. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.txt +1 -0
  201. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/read-spec.js +22 -0
  202. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/relative-spec.js +25 -0
  203. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/reroot-spec.js +45 -0
  204. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/write-spec.js +38 -0
  205. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/cookie-spec.js +52 -0
  206. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/directory-list-spec.js +86 -0
  207. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/01234.txt +1 -0
  208. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/1234.txt +1 -0
  209. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/5678.txt +0 -0
  210. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/9012/3456.txt +0 -0
  211. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/hosts-spec.js +49 -0
  212. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/interpret-range-spec.js +47 -0
  213. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/partial-range-spec.js +186 -0
  214. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/proxy-spec.js +82 -0
  215. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/symbolic-link-spec.js +110 -0
  216. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/agent-spec.js +96 -0
  217. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/basic-spec.js +96 -0
  218. data/vendor/node_modules/traceur/node_modules/q-io/spec/lib/jasmine-promise.js +42 -0
  219. data/vendor/node_modules/traceur/node_modules/q-io/writer.js +111 -0
  220. data/vendor/node_modules/traceur/node_modules/semver/.npmignore +1 -0
  221. data/vendor/node_modules/traceur/node_modules/semver/LICENSE +27 -0
  222. data/vendor/node_modules/traceur/node_modules/semver/Makefile +24 -0
  223. data/vendor/node_modules/traceur/node_modules/semver/README.md +158 -0
  224. data/vendor/node_modules/traceur/node_modules/semver/bin/semver +125 -0
  225. data/vendor/node_modules/traceur/node_modules/semver/foot.js +6 -0
  226. data/vendor/node_modules/traceur/node_modules/semver/head.js +2 -0
  227. data/vendor/node_modules/traceur/node_modules/semver/package.json +31 -0
  228. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js +1039 -0
  229. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js.gz +0 -0
  230. data/vendor/node_modules/traceur/node_modules/semver/semver.js +1043 -0
  231. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js +1 -0
  232. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js.gz +0 -0
  233. data/vendor/node_modules/traceur/node_modules/semver/test/amd.js +15 -0
  234. data/vendor/node_modules/traceur/node_modules/semver/test/gtr.js +173 -0
  235. data/vendor/node_modules/traceur/node_modules/semver/test/index.js +584 -0
  236. data/vendor/node_modules/traceur/node_modules/semver/test/ltr.js +174 -0
  237. data/vendor/node_modules/traceur/node_modules/semver/test/no-module.js +19 -0
  238. data/vendor/node_modules/traceur/package.json +64 -0
  239. data/vendor/node_modules/traceur/src/node/System.js +31 -0
  240. data/vendor/node_modules/traceur/src/node/api.js +124 -0
  241. data/vendor/node_modules/traceur/src/node/command.js +141 -0
  242. data/vendor/node_modules/traceur/src/node/compile-single-file.js +69 -0
  243. data/vendor/node_modules/traceur/src/node/compiler.js +116 -0
  244. data/vendor/node_modules/traceur/src/node/deferred.js +110 -0
  245. data/vendor/node_modules/traceur/src/node/file-util.js +73 -0
  246. data/vendor/node_modules/traceur/src/node/getopt.js +147 -0
  247. data/vendor/node_modules/traceur/src/node/inline-module.js +149 -0
  248. data/vendor/node_modules/traceur/src/node/interpreter.js +33 -0
  249. data/vendor/node_modules/traceur/src/node/nodeLoader.js +41 -0
  250. data/vendor/node_modules/traceur/src/node/require.js +85 -0
  251. data/vendor/node_modules/traceur/src/node/to-amd-compiler.js +33 -0
  252. data/vendor/node_modules/traceur/src/node/to-commonjs-compiler.js +33 -0
  253. data/vendor/node_modules/traceur/src/node/traceur.js +32 -0
  254. data/vendor/node_modules/traceur/traceur +3 -0
  255. metadata +359 -0
@@ -0,0 +1,86 @@
1
+
2
+ require("../lib/jasmine-promise");
3
+ var Http = require("../../http");
4
+ var Apps = require("../../http-apps");
5
+ var FS = require("../../fs");
6
+
7
+ describe("directory lists", function () {
8
+
9
+ it("should be fine in plain text", function () {
10
+
11
+ var fixture = FS.join(module.directory || __dirname, "fixtures");
12
+
13
+ var app = new Apps.Chain()
14
+ .use(Apps.Cap)
15
+ .use(Apps.ListDirectories)
16
+ .use(function () {
17
+ return Apps.FileTree(fixture);
18
+ })
19
+ .end()
20
+
21
+ return Http.Server(app)
22
+ .listen(0)
23
+ .then(function (server) {
24
+ var port = server.address().port;
25
+ return Http.read({
26
+ url: "http://127.0.0.1:" + port + "/",
27
+ headers: {
28
+ accept: "text/plain"
29
+ },
30
+ charset: 'utf-8'
31
+ })
32
+ .then(function (content) {
33
+ expect(content).toEqual("01234.txt\n1234.txt\n5678.txt\n9012/\n");
34
+ })
35
+ .finally(server.stop);
36
+ });
37
+
38
+ });
39
+
40
+ it("should be fine in html", function () {
41
+
42
+ var fixture = FS.join(module.directory || __dirname, "fixtures");
43
+
44
+ var app = new Apps.Chain()
45
+ .use(Apps.Cap)
46
+ .use(Apps.HandleHtmlFragmentResponses)
47
+ .use(Apps.ListDirectories)
48
+ .use(function () {
49
+ return Apps.FileTree(fixture);
50
+ })
51
+ .end()
52
+
53
+ return Http.Server(app)
54
+ .listen(0)
55
+ .then(function (server) {
56
+ var port = server.address().port;
57
+ return Http.read({
58
+ url: "http://127.0.0.1:" + port + "/",
59
+ headers: {
60
+ accept: "text/html"
61
+ },
62
+ charset: 'utf-8'
63
+ })
64
+ .then(function (content) {
65
+ expect(content).toEqual(
66
+ "<!doctype html>\n" +
67
+ "<html>\n" +
68
+ " <head>\n" +
69
+ " <title>Directory Index</title>\n" +
70
+ " </head>\n" +
71
+ " <body>\n" +
72
+ " <ul class=\"directory-index\">\n" +
73
+ " <li class=\"entry file\"><a href=\"01234.txt\">01234.txt</a></li>\n" +
74
+ " <li class=\"entry file\"><a href=\"1234.txt\">1234.txt</a></li>\n" +
75
+ " <li class=\"entry file\"><a href=\"5678.txt\">5678.txt</a></li>\n" +
76
+ " <li class=\"entry directory\"><a href=\"9012/\">9012/</a></li>\n" +
77
+ " </ul>\n" +
78
+ " </body>\n" +
79
+ "</html>\n"
80
+ );
81
+ })
82
+ .finally(server.stop);
83
+ });
84
+
85
+ });
86
+ });
@@ -0,0 +1,49 @@
1
+
2
+ require("../lib/jasmine-promise");
3
+ var Q = require("q");
4
+ var Http = require("../../http");
5
+ var Negotiate = require("../../http-apps/negotiate");
6
+ var Content = require("../../http-apps/content");
7
+
8
+ describe("http host negotiation", function () {
9
+ it("should work", function () {
10
+ return Http.Server(Negotiate.Host({
11
+ "localhost:999": function (request) {
12
+ throw new Error("Should not get here");
13
+ },
14
+ "127.0.0.1:999": function (request) {
15
+ throw new Error("Should not get here");
16
+ },
17
+ "localhost": function (request) {
18
+ return Content.ok("Hello, Localhost");
19
+ },
20
+ "127.0.0.1": function (request) {
21
+ return Content.ok("Hello, 127.0.0.1");
22
+ }
23
+ }))
24
+ .listen(0)
25
+ .then(function (server) {
26
+ var port = server.address().port;
27
+ return Q.fcall(function () {
28
+ return Http.read({
29
+ "url": "http://localhost:" + port,
30
+ "charset": "utf-8"
31
+ })
32
+ .then(function (result) {
33
+ expect(result).toEqual("Hello, Localhost");
34
+ });
35
+ })
36
+ .then(function () {
37
+ return Http.read({
38
+ "url": "http://127.0.0.1:" + port,
39
+ "charset": "utf-8"
40
+ })
41
+ .then(function (result) {
42
+ expect(result).toEqual("Hello, 127.0.0.1");
43
+ });
44
+ })
45
+ .finally(server.stop);
46
+ });
47
+ });
48
+ });
49
+
@@ -0,0 +1,47 @@
1
+
2
+ // http://labs.apache.org/webarch/http/draft-fielding-http/p5-range.html#range.units
3
+
4
+ var Apps = require("../../http-apps/fs");
5
+
6
+ var size = 10000;
7
+ var tests = [
8
+ {
9
+ description: "The first 500 bytes (byte offsets 0-499, inclusive)",
10
+ input: "bytes=0-499",
11
+ oracle: {begin: 0, end: 500}
12
+ },
13
+ {
14
+ description: "The second 500 bytes (byte offsets 500-999, inclusive)",
15
+ input: "bytes=500-999",
16
+ oracle: {begin: 500, end: 1000}
17
+ },
18
+ {
19
+ description: "The initial 500 bytes with 0 elided",
20
+ input: "bytes=-499",
21
+ oracle: {begin: 0, end: 500}
22
+ },
23
+ {
24
+ description: "The final 500 bytes with final elided (byte offsets 9500-9999, inclusive)",
25
+ input: "bytes=9500-",
26
+ oracle: {begin: 9500, end: 10000}
27
+ },
28
+ {
29
+ description: "Legal but not canonical specification of the second 500 bytes (byte offsets 500-999, inclusive)",
30
+ input: "bytes=500-600,601-999",
31
+ oracle: {begin: 500, end: 1000}
32
+ },
33
+ {
34
+ description: "Legal but not canonical specification of the second 500 bytes (byte offsets 500-999, inclusive)",
35
+ input: "bytes=500-700,601-999",
36
+ oracle: {begin: 500, end: 1000}
37
+ }
38
+ ];
39
+
40
+ describe("range interpretation", function () {
41
+ tests.forEach(function (test) {
42
+ it("should interpret " + test.input, function () {
43
+ expect(Apps.interpretFirstRange(test.input, size)).toEqual(test.oracle);
44
+ });
45
+ });
46
+ });
47
+
@@ -0,0 +1,186 @@
1
+
2
+ require("../lib/jasmine-promise");
3
+ var Http = require("../../http");
4
+ var Apps = require("../../http-apps");
5
+ var FS = require("../../fs");
6
+
7
+ // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1
8
+ describe("HTTP Range", function () {
9
+ var fixture, app, serveAndTest;
10
+ describe("Byte Ranges" , function () {
11
+ beforeEach(function () {
12
+ fixture = FS.join(module.directory || __dirname, "fixtures", "01234.txt");
13
+ app = new Apps.Chain()
14
+ .use(Apps.Cap)
15
+ .use(function () {
16
+ return Apps.File(fixture);
17
+ })
18
+ .end();
19
+ serveAndTest = function serveAndTest(rangeExp, expectedStatus) {
20
+ return Http.Server(app)
21
+ .listen(0)
22
+ .then(function (server) {
23
+ var port = server.node.address().port;
24
+ return Http.read({
25
+ "url": "http://127.0.0.1:" + port + "/",
26
+ "headers": {
27
+ "range": rangeExp
28
+ }
29
+ }, function (response) {
30
+ return response.status === expectedStatus;
31
+ }).finally(server.stop);
32
+ })
33
+ }
34
+ });
35
+
36
+ // A byte range operation MAY specify a single range of bytes, or a set of ranges within a single entity.
37
+ // ranges-specifier = byte-ranges-specifier
38
+ // byte-ranges-specifier = bytes-unit "=" byte-range-set
39
+ // byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
40
+ // byte-range-spec = first-byte-pos "-" [last-byte-pos]
41
+ // first-byte-pos = 1*DIGIT
42
+ // last-byte-pos = 1*DIGIT
43
+ describe("byte range spec", function () {
44
+ // The first-byte-pos value in a byte-range-spec gives the byte-offset of the first byte in a range. The
45
+ // last-byte-pos value gives the byte-offset of the last byte in the range; that is, the byte positions
46
+ // specified are inclusive. Byte offsets start at zero.
47
+ it("positions are inclusive", function () {
48
+ return serveAndTest("bytes=0-2", 206)
49
+ .then(function (content) {
50
+ expect(content.toString('utf-8')).toEqual('012');
51
+ });
52
+ });
53
+ it("last position is optional", function () {
54
+ return serveAndTest("bytes=0-", 206)
55
+ .then(function (content) {
56
+ expect(content.toString('utf-8')).toEqual('01234.txt\n');
57
+ });
58
+ });
59
+
60
+ // TODO
61
+ xit("non contiguous ranges", function () {
62
+ return serveAndTest("bytes=0-2,4-5", 206)
63
+ .then(function (content) {
64
+ expect(content.toString('utf-8')).toEqual('0124.');
65
+ });
66
+ });
67
+
68
+ // If the last-byte-pos value is present, it MUST be greater than
69
+ // or equal to the first-byte-pos in that byte-range-spec, or the
70
+ // byte- range-spec is syntactically invalid. The recipient of a
71
+ // byte-range- set that includes one or more syntactically invalid
72
+ // byte-range-spec values MUST ignore the header field that
73
+ // includes that byte-range- set.
74
+ describe("invalid syntax should be ignored", function () {
75
+ it("last positions must be greater than first", function () {
76
+ return serveAndTest("bytes=4-3", 216)
77
+ .then(function (content) {
78
+ expect(false).toBe(true);
79
+ }, function (error) {
80
+ expect(error.response.status).toBe(416);
81
+ })
82
+ });
83
+ it("if any part is invalid, all of it is invalid", function () {
84
+ return serveAndTest("bytes=0-2,4-3", 216)
85
+ .then(function (content) {
86
+ expect(false).toBe(true);
87
+ }, function (error) {
88
+ expect(error.response.status).toBe(416);
89
+ });
90
+ });
91
+ });
92
+
93
+ // If the last-byte-pos value is absent, or if the value is greater than or equal to the current length of
94
+ // the entity-body, last-byte-pos is taken to be equal to one less than the current length of the entity-
95
+ // body in bytes.
96
+ describe("last position should be truncated to the length of the content", function () {
97
+ it("single range", function () {
98
+ return serveAndTest("bytes=0-10", 206)
99
+ .then(function (content) {
100
+ expect(content.toString('utf-8')).toEqual('01234.txt\n');
101
+ });
102
+ });
103
+ // TODO
104
+ xit("multiple ranges", function () {
105
+ return serveAndTest("bytes=0-2,1-10", 206)
106
+ .then(function (content) {
107
+ expect(content.toString('utf-8')).toEqual('0121234.txt\n');
108
+ });
109
+ });
110
+ });
111
+ });
112
+
113
+ //By its choice of last-byte-pos, a client can limit the number of
114
+ //bytes retrieved without knowing the size of
115
+ // the entity.
116
+ // suffix-byte-range-spec = "-" suffix-length
117
+ // suffix-length = 1*DIGIT
118
+ describe("suffix byte range spec", function () {
119
+ it("can limit the number of bytes retrieved", function () {
120
+ return serveAndTest("bytes=-3", 206)
121
+ .then(function (content) {
122
+ expect(content.toString('utf-8')).toEqual('0123');
123
+ });
124
+ });
125
+
126
+ // A suffix-byte-range-spec is used to specify the suffix of the
127
+ // entity-body, of a length given by the suffix-length value. (That
128
+ // is, this form specifies the last N bytes of an entity-body.) If
129
+ // the entity is shorter than the specified suffix-length, the
130
+ // entire entity-body is used.
131
+ it("last position should be truncated to the length", function () {
132
+ return serveAndTest("bytes=-20", 206)
133
+ .then(function (content) {
134
+ expect(content.toString('utf-8')).toEqual('01234.txt\n');
135
+ });
136
+ });
137
+ });
138
+
139
+ // If a syntactically valid byte-range-set includes at least one byte-
140
+ // range-spec whose first-byte-pos is less than the current length of
141
+ // the entity-body, or at least one suffix-byte-range-spec with a non-
142
+ // zero suffix-length, then the byte-range-set is satisfiable.
143
+ // Otherwise, the byte-range-set is unsatisfiable. If the
144
+ // byte-range-set is unsatisfiable, the server SHOULD return a response
145
+ // with a status of 416 (Requested range not satisfiable). Otherwise,
146
+ // the server SHOULD return a response with a status of 206 (Partial
147
+ // Content) containing the satisfiable ranges of the entity-body.
148
+ describe("satisfiability", function () {
149
+ it("should return 416 if a byte range spec is unsatisfiable", function () {
150
+ return serveAndTest("bytes=10-11", 416)
151
+ .then(function (content) {
152
+ expect(true).toBeTruthy();
153
+ }).fail(function () {
154
+ expect(false).toBeTruthy();
155
+ });
156
+ });
157
+
158
+ it("should return 416 if a suffix byte range spec is unsatisfiable", function () {
159
+ return serveAndTest("bytes=1-0", 206)
160
+ .then(function (content) {
161
+ expect(true).toBeFalsy();
162
+ }).fail(function (error) {
163
+ expect(error.response.status).toBe(416);
164
+ });
165
+ });
166
+
167
+ it("should return 416 if all byte range spec are unsatisfiable", function () {
168
+ return serveAndTest("bytes=10-11,-0", 416)
169
+ .then(function (content) {
170
+ expect(true).toBeTruthy();
171
+ }).fail(function () {
172
+ expect(false).toBeTruthy();
173
+ });
174
+ });
175
+
176
+ // TODO
177
+ xit("should return 200 if at least one byte range spec is satisfiable", function () {
178
+ return serveAndTest("bytes=10-11,0-2", 200)
179
+ .then(function (content) {
180
+ expect(content.toString('utf-8')).toEqual('012');
181
+ });
182
+ });
183
+
184
+ });
185
+ });
186
+ });
@@ -0,0 +1,82 @@
1
+
2
+ require("../lib/jasmine-promise");
3
+ var Q = require("q");
4
+ var Http = require("../../http");
5
+ var Apps = require("../../http-apps");
6
+ var FS = require("../../fs");
7
+
8
+ describe("http proxy", function () {
9
+
10
+ it("should work", function () {
11
+
12
+ var requestProxy;
13
+ var responseProxy;
14
+ var requestActual;
15
+ var responseActual;
16
+
17
+ var app = Apps.Chain()
18
+ .use(Apps.Trap, function (response) {
19
+ responseActual = response;
20
+ return response;
21
+ })
22
+ .use(Apps.Tap, function (request) {
23
+ requestActual = request;
24
+ })
25
+ .use(function (next) {
26
+ return Apps.Branch({
27
+ "foo": Apps.Branch({
28
+ "bar": new Apps.Chain()
29
+ .use(Apps.Cap)
30
+ .use(function () {
31
+ return Apps.Content(["Hello, World!"])
32
+ })
33
+ .end()
34
+ })
35
+ })
36
+ })
37
+ .end();
38
+
39
+ var server1 = Http.Server(app);
40
+
41
+ return Q.when(server1.listen(0))
42
+ .then(function (server1) {
43
+ var port = server1.node.address().port;
44
+
45
+ var server2 = Http.Server(
46
+ Apps.Trap(
47
+ Apps.Tap(
48
+ Apps.ProxyTree("http://127.0.0.1:" + port + "/foo/"),
49
+ function (request) {
50
+ requestProxy = request;
51
+ }
52
+ ),
53
+ function (response) {
54
+ responseProxy = response;
55
+ return response;
56
+ }
57
+ )
58
+ );
59
+
60
+ return [server1, server2.listen(0)];
61
+ })
62
+ .spread(function (server1, server2) {
63
+ var port = server2.node.address().port;
64
+ return Http.read({
65
+ url: "http://127.0.0.1:" + port + "/bar",
66
+ charset: "utf-8"
67
+ })
68
+ .then(function (content) {
69
+ expect(content).toBe("Hello, World!");
70
+ expect(requestActual).toBeTruthy();
71
+ expect(responseActual).toBeTruthy();
72
+ expect(requestProxy).toBeTruthy();
73
+ expect(responseProxy).toBeTruthy();
74
+ })
75
+ .finally(server1.stop)
76
+ .finally(server2.stop)
77
+ })
78
+
79
+ });
80
+
81
+ });
82
+