UrgentcareCLI 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +60 -25
  4. data/Notes +1 -1
  5. data/README.md +5 -5
  6. data/Rakefile +2 -0
  7. data/UrgentCare.gemspec +3 -3
  8. data/background.jpg +0 -0
  9. data/lib/UrgentCare.rb +3 -0
  10. data/lib/UrgentCare/CLI.rb +6 -2
  11. data/lib/UrgentCare/version.rb +1 -1
  12. data/lib/Urgentcare/Scraper.rb +65 -23
  13. data/node_modules/.bin/rimraf +1 -0
  14. data/node_modules/.package-lock.json +250 -0
  15. data/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  16. data/node_modules/balanced-match/LICENSE.md +21 -0
  17. data/node_modules/balanced-match/README.md +97 -0
  18. data/node_modules/balanced-match/index.js +62 -0
  19. data/node_modules/balanced-match/package.json +48 -0
  20. data/node_modules/brace-expansion/LICENSE +21 -0
  21. data/node_modules/brace-expansion/README.md +129 -0
  22. data/node_modules/brace-expansion/index.js +201 -0
  23. data/node_modules/brace-expansion/package.json +47 -0
  24. data/node_modules/concat-map/.travis.yml +4 -0
  25. data/node_modules/concat-map/LICENSE +18 -0
  26. data/node_modules/concat-map/README.markdown +62 -0
  27. data/node_modules/concat-map/example/map.js +6 -0
  28. data/node_modules/concat-map/index.js +13 -0
  29. data/node_modules/concat-map/package.json +43 -0
  30. data/node_modules/concat-map/test/map.js +39 -0
  31. data/node_modules/core-util-is/LICENSE +19 -0
  32. data/node_modules/core-util-is/README.md +3 -0
  33. data/node_modules/core-util-is/float.patch +604 -0
  34. data/node_modules/core-util-is/lib/util.js +107 -0
  35. data/node_modules/core-util-is/package.json +32 -0
  36. data/node_modules/core-util-is/test.js +68 -0
  37. data/node_modules/fs.realpath/LICENSE +43 -0
  38. data/node_modules/fs.realpath/README.md +33 -0
  39. data/node_modules/fs.realpath/index.js +66 -0
  40. data/node_modules/fs.realpath/old.js +303 -0
  41. data/node_modules/fs.realpath/package.json +26 -0
  42. data/node_modules/glob/LICENSE +21 -0
  43. data/node_modules/glob/README.md +375 -0
  44. data/node_modules/glob/changelog.md +67 -0
  45. data/node_modules/glob/common.js +234 -0
  46. data/node_modules/glob/glob.js +788 -0
  47. data/node_modules/glob/package.json +51 -0
  48. data/node_modules/glob/sync.js +484 -0
  49. data/node_modules/immediate/LICENSE.txt +20 -0
  50. data/node_modules/immediate/README.md +93 -0
  51. data/node_modules/immediate/dist/immediate.js +75 -0
  52. data/node_modules/immediate/dist/immediate.min.js +1 -0
  53. data/node_modules/immediate/lib/browser.js +69 -0
  54. data/node_modules/immediate/lib/index.js +73 -0
  55. data/node_modules/immediate/package.json +42 -0
  56. data/node_modules/inflight/LICENSE +15 -0
  57. data/node_modules/inflight/README.md +37 -0
  58. data/node_modules/inflight/inflight.js +54 -0
  59. data/node_modules/inflight/package.json +29 -0
  60. data/node_modules/inherits/LICENSE +16 -0
  61. data/node_modules/inherits/README.md +42 -0
  62. data/node_modules/inherits/inherits.js +9 -0
  63. data/node_modules/inherits/inherits_browser.js +27 -0
  64. data/node_modules/inherits/package.json +29 -0
  65. data/node_modules/isarray/.npmignore +1 -0
  66. data/node_modules/isarray/.travis.yml +4 -0
  67. data/node_modules/isarray/Makefile +6 -0
  68. data/node_modules/isarray/README.md +60 -0
  69. data/node_modules/isarray/component.json +19 -0
  70. data/node_modules/isarray/index.js +5 -0
  71. data/node_modules/isarray/package.json +45 -0
  72. data/node_modules/isarray/test.js +20 -0
  73. data/node_modules/jszip/.codeclimate.yml +16 -0
  74. data/node_modules/jszip/.editorconfig +8 -0
  75. data/node_modules/jszip/.jshintignore +1 -0
  76. data/node_modules/jszip/.jshintrc +21 -0
  77. data/node_modules/jszip/.travis.yml +17 -0
  78. data/node_modules/jszip/CHANGES.md +163 -0
  79. data/node_modules/jszip/LICENSE.markdown +651 -0
  80. data/node_modules/jszip/README.markdown +35 -0
  81. data/node_modules/jszip/dist/jszip.js +30 -0
  82. data/node_modules/jszip/dist/jszip.min.js +13 -0
  83. data/node_modules/jszip/index.d.ts +270 -0
  84. data/node_modules/jszip/lib/base64.js +106 -0
  85. data/node_modules/jszip/lib/compressedObject.js +74 -0
  86. data/node_modules/jszip/lib/compressions.js +14 -0
  87. data/node_modules/jszip/lib/crc32.js +77 -0
  88. data/node_modules/jszip/lib/defaults.js +11 -0
  89. data/node_modules/jszip/lib/external.js +19 -0
  90. data/node_modules/jszip/lib/flate.js +85 -0
  91. data/node_modules/jszip/lib/generate/ZipFileWorker.js +540 -0
  92. data/node_modules/jszip/lib/generate/index.js +57 -0
  93. data/node_modules/jszip/lib/index.js +52 -0
  94. data/node_modules/jszip/lib/license_header.js +11 -0
  95. data/node_modules/jszip/lib/load.js +81 -0
  96. data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  97. data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  98. data/node_modules/jszip/lib/nodejsUtils.js +57 -0
  99. data/node_modules/jszip/lib/object.js +389 -0
  100. data/node_modules/jszip/lib/readable-stream-browser.js +9 -0
  101. data/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  102. data/node_modules/jszip/lib/reader/DataReader.js +116 -0
  103. data/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  104. data/node_modules/jszip/lib/reader/StringReader.js +38 -0
  105. data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  106. data/node_modules/jszip/lib/reader/readerFor.js +28 -0
  107. data/node_modules/jszip/lib/signature.js +7 -0
  108. data/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  109. data/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  110. data/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  111. data/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  112. data/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  113. data/node_modules/jszip/lib/stream/StreamHelper.js +212 -0
  114. data/node_modules/jszip/lib/support.js +38 -0
  115. data/node_modules/jszip/lib/utf8.js +275 -0
  116. data/node_modules/jszip/lib/utils.js +476 -0
  117. data/node_modules/jszip/lib/zipEntries.js +262 -0
  118. data/node_modules/jszip/lib/zipEntry.js +294 -0
  119. data/node_modules/jszip/lib/zipObject.js +133 -0
  120. data/node_modules/jszip/package.json +63 -0
  121. data/node_modules/jszip/vendor/FileSaver.js +247 -0
  122. data/node_modules/lie/README.md +62 -0
  123. data/node_modules/lie/dist/lie.js +350 -0
  124. data/node_modules/lie/dist/lie.min.js +1 -0
  125. data/node_modules/lie/dist/lie.polyfill.js +358 -0
  126. data/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  127. data/node_modules/lie/lib/browser.js +273 -0
  128. data/node_modules/lie/lib/index.js +298 -0
  129. data/node_modules/lie/license.md +7 -0
  130. data/node_modules/lie/lie.d.ts +244 -0
  131. data/node_modules/lie/package.json +69 -0
  132. data/node_modules/lie/polyfill.js +4 -0
  133. data/node_modules/minimatch/LICENSE +15 -0
  134. data/node_modules/minimatch/README.md +209 -0
  135. data/node_modules/minimatch/minimatch.js +923 -0
  136. data/node_modules/minimatch/package.json +30 -0
  137. data/node_modules/once/LICENSE +15 -0
  138. data/node_modules/once/README.md +79 -0
  139. data/node_modules/once/once.js +42 -0
  140. data/node_modules/once/package.json +33 -0
  141. data/node_modules/pako/CHANGELOG.md +164 -0
  142. data/node_modules/pako/LICENSE +21 -0
  143. data/node_modules/pako/README.md +191 -0
  144. data/node_modules/pako/dist/pako.js +6818 -0
  145. data/node_modules/pako/dist/pako.min.js +1 -0
  146. data/node_modules/pako/dist/pako_deflate.js +3997 -0
  147. data/node_modules/pako/dist/pako_deflate.min.js +1 -0
  148. data/node_modules/pako/dist/pako_inflate.js +3300 -0
  149. data/node_modules/pako/dist/pako_inflate.min.js +1 -0
  150. data/node_modules/pako/index.js +14 -0
  151. data/node_modules/pako/lib/deflate.js +400 -0
  152. data/node_modules/pako/lib/inflate.js +423 -0
  153. data/node_modules/pako/lib/utils/common.js +105 -0
  154. data/node_modules/pako/lib/utils/strings.js +187 -0
  155. data/node_modules/pako/lib/zlib/README +59 -0
  156. data/node_modules/pako/lib/zlib/adler32.js +51 -0
  157. data/node_modules/pako/lib/zlib/constants.js +68 -0
  158. data/node_modules/pako/lib/zlib/crc32.js +59 -0
  159. data/node_modules/pako/lib/zlib/deflate.js +1874 -0
  160. data/node_modules/pako/lib/zlib/gzheader.js +58 -0
  161. data/node_modules/pako/lib/zlib/inffast.js +345 -0
  162. data/node_modules/pako/lib/zlib/inflate.js +1556 -0
  163. data/node_modules/pako/lib/zlib/inftrees.js +343 -0
  164. data/node_modules/pako/lib/zlib/messages.js +32 -0
  165. data/node_modules/pako/lib/zlib/trees.js +1222 -0
  166. data/node_modules/pako/lib/zlib/zstream.js +47 -0
  167. data/node_modules/pako/package.json +44 -0
  168. data/node_modules/path-is-absolute/index.js +20 -0
  169. data/node_modules/path-is-absolute/license +21 -0
  170. data/node_modules/path-is-absolute/package.json +43 -0
  171. data/node_modules/path-is-absolute/readme.md +59 -0
  172. data/node_modules/process-nextick-args/index.js +45 -0
  173. data/node_modules/process-nextick-args/license.md +19 -0
  174. data/node_modules/process-nextick-args/package.json +25 -0
  175. data/node_modules/process-nextick-args/readme.md +18 -0
  176. data/node_modules/readable-stream/.travis.yml +34 -0
  177. data/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  178. data/node_modules/readable-stream/GOVERNANCE.md +136 -0
  179. data/node_modules/readable-stream/LICENSE +47 -0
  180. data/node_modules/readable-stream/README.md +58 -0
  181. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  182. data/node_modules/readable-stream/duplex-browser.js +1 -0
  183. data/node_modules/readable-stream/duplex.js +1 -0
  184. data/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  185. data/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  186. data/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  187. data/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  188. data/node_modules/readable-stream/lib/_stream_writable.js +687 -0
  189. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
  190. data/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  191. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  192. data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  193. data/node_modules/readable-stream/package.json +52 -0
  194. data/node_modules/readable-stream/passthrough.js +1 -0
  195. data/node_modules/readable-stream/readable-browser.js +7 -0
  196. data/node_modules/readable-stream/readable.js +19 -0
  197. data/node_modules/readable-stream/transform.js +1 -0
  198. data/node_modules/readable-stream/writable-browser.js +1 -0
  199. data/node_modules/readable-stream/writable.js +8 -0
  200. data/node_modules/rimraf/LICENSE +15 -0
  201. data/node_modules/rimraf/README.md +101 -0
  202. data/node_modules/rimraf/bin.js +50 -0
  203. data/node_modules/rimraf/package.json +29 -0
  204. data/node_modules/rimraf/rimraf.js +372 -0
  205. data/node_modules/safe-buffer/LICENSE +21 -0
  206. data/node_modules/safe-buffer/README.md +584 -0
  207. data/node_modules/safe-buffer/index.d.ts +187 -0
  208. data/node_modules/safe-buffer/index.js +62 -0
  209. data/node_modules/safe-buffer/package.json +37 -0
  210. data/node_modules/selenium-webdriver/CHANGES.md +1114 -0
  211. data/node_modules/selenium-webdriver/LICENSE +202 -0
  212. data/node_modules/selenium-webdriver/NOTICE +2 -0
  213. data/node_modules/selenium-webdriver/README.md +229 -0
  214. data/node_modules/selenium-webdriver/chrome.js +295 -0
  215. data/node_modules/selenium-webdriver/chromium.js +829 -0
  216. data/node_modules/selenium-webdriver/devtools/CDPConnection.js +35 -0
  217. data/node_modules/selenium-webdriver/edge.js +224 -0
  218. data/node_modules/selenium-webdriver/example/chrome_android.js +45 -0
  219. data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +46 -0
  220. data/node_modules/selenium-webdriver/example/firefox_channels.js +84 -0
  221. data/node_modules/selenium-webdriver/example/google_search.js +50 -0
  222. data/node_modules/selenium-webdriver/example/google_search_test.js +70 -0
  223. data/node_modules/selenium-webdriver/example/headless.js +63 -0
  224. data/node_modules/selenium-webdriver/example/logging.js +64 -0
  225. data/node_modules/selenium-webdriver/firefox.js +789 -0
  226. data/node_modules/selenium-webdriver/http/index.js +324 -0
  227. data/node_modules/selenium-webdriver/http/util.js +172 -0
  228. data/node_modules/selenium-webdriver/ie.js +503 -0
  229. data/node_modules/selenium-webdriver/index.js +825 -0
  230. data/node_modules/selenium-webdriver/io/exec.js +162 -0
  231. data/node_modules/selenium-webdriver/io/index.js +348 -0
  232. data/node_modules/selenium-webdriver/io/zip.js +223 -0
  233. data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +123 -0
  234. data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +101 -0
  235. data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +101 -0
  236. data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +55 -0
  237. data/node_modules/selenium-webdriver/lib/by.js +415 -0
  238. data/node_modules/selenium-webdriver/lib/capabilities.js +553 -0
  239. data/node_modules/selenium-webdriver/lib/command.js +206 -0
  240. data/node_modules/selenium-webdriver/lib/error.js +605 -0
  241. data/node_modules/selenium-webdriver/lib/http.js +704 -0
  242. data/node_modules/selenium-webdriver/lib/input.js +946 -0
  243. data/node_modules/selenium-webdriver/lib/logging.js +661 -0
  244. data/node_modules/selenium-webdriver/lib/promise.js +285 -0
  245. data/node_modules/selenium-webdriver/lib/proxy.js +212 -0
  246. data/node_modules/selenium-webdriver/lib/session.js +77 -0
  247. data/node_modules/selenium-webdriver/lib/symbols.js +37 -0
  248. data/node_modules/selenium-webdriver/lib/until.js +429 -0
  249. data/node_modules/selenium-webdriver/lib/webdriver.js +2919 -0
  250. data/node_modules/selenium-webdriver/net/index.js +107 -0
  251. data/node_modules/selenium-webdriver/net/portprober.js +75 -0
  252. data/node_modules/selenium-webdriver/opera.js +406 -0
  253. data/node_modules/selenium-webdriver/package.json +54 -0
  254. data/node_modules/selenium-webdriver/proxy.js +32 -0
  255. data/node_modules/selenium-webdriver/remote/index.js +624 -0
  256. data/node_modules/selenium-webdriver/safari.js +168 -0
  257. data/node_modules/selenium-webdriver/testing/index.js +504 -0
  258. data/node_modules/set-immediate-shim/index.js +7 -0
  259. data/node_modules/set-immediate-shim/package.json +34 -0
  260. data/node_modules/set-immediate-shim/readme.md +31 -0
  261. data/node_modules/string_decoder/.travis.yml +50 -0
  262. data/node_modules/string_decoder/LICENSE +48 -0
  263. data/node_modules/string_decoder/README.md +47 -0
  264. data/node_modules/string_decoder/lib/string_decoder.js +296 -0
  265. data/node_modules/string_decoder/package.json +31 -0
  266. data/node_modules/tmp/CHANGELOG.md +288 -0
  267. data/node_modules/tmp/LICENSE +21 -0
  268. data/node_modules/tmp/README.md +365 -0
  269. data/node_modules/tmp/lib/tmp.js +780 -0
  270. data/node_modules/tmp/node_modules/.bin/rimraf +1 -0
  271. data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +65 -0
  272. data/node_modules/tmp/node_modules/rimraf/LICENSE +15 -0
  273. data/node_modules/tmp/node_modules/rimraf/README.md +101 -0
  274. data/node_modules/tmp/node_modules/rimraf/bin.js +68 -0
  275. data/node_modules/tmp/node_modules/rimraf/package.json +32 -0
  276. data/node_modules/tmp/node_modules/rimraf/rimraf.js +360 -0
  277. data/node_modules/tmp/package.json +58 -0
  278. data/node_modules/util-deprecate/History.md +16 -0
  279. data/node_modules/util-deprecate/LICENSE +24 -0
  280. data/node_modules/util-deprecate/README.md +53 -0
  281. data/node_modules/util-deprecate/browser.js +67 -0
  282. data/node_modules/util-deprecate/node.js +6 -0
  283. data/node_modules/util-deprecate/package.json +27 -0
  284. data/node_modules/wrappy/LICENSE +15 -0
  285. data/node_modules/wrappy/README.md +36 -0
  286. data/node_modules/wrappy/package.json +29 -0
  287. data/node_modules/wrappy/wrappy.js +33 -0
  288. data/node_modules/ws/LICENSE +21 -0
  289. data/node_modules/ws/README.md +496 -0
  290. data/node_modules/ws/browser.js +8 -0
  291. data/node_modules/ws/index.js +10 -0
  292. data/node_modules/ws/lib/buffer-util.js +129 -0
  293. data/node_modules/ws/lib/constants.js +10 -0
  294. data/node_modules/ws/lib/event-target.js +184 -0
  295. data/node_modules/ws/lib/extension.js +223 -0
  296. data/node_modules/ws/lib/limiter.js +55 -0
  297. data/node_modules/ws/lib/permessage-deflate.js +517 -0
  298. data/node_modules/ws/lib/receiver.js +507 -0
  299. data/node_modules/ws/lib/sender.js +405 -0
  300. data/node_modules/ws/lib/stream.js +165 -0
  301. data/node_modules/ws/lib/validation.js +104 -0
  302. data/node_modules/ws/lib/websocket-server.js +418 -0
  303. data/node_modules/ws/lib/websocket.js +942 -0
  304. data/node_modules/ws/package.json +56 -0
  305. data/package-lock.json +458 -0
  306. data/package.json +5 -0
  307. data/selenium.log +1 -0
  308. metadata +314 -19
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "brace-expansion",
3
+ "description": "Brace expansion as known from sh/bash",
4
+ "version": "1.1.11",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git://github.com/juliangruber/brace-expansion.git"
8
+ },
9
+ "homepage": "https://github.com/juliangruber/brace-expansion",
10
+ "main": "index.js",
11
+ "scripts": {
12
+ "test": "tape test/*.js",
13
+ "gentest": "bash test/generate.sh",
14
+ "bench": "matcha test/perf/bench.js"
15
+ },
16
+ "dependencies": {
17
+ "balanced-match": "^1.0.0",
18
+ "concat-map": "0.0.1"
19
+ },
20
+ "devDependencies": {
21
+ "matcha": "^0.7.0",
22
+ "tape": "^4.6.0"
23
+ },
24
+ "keywords": [],
25
+ "author": {
26
+ "name": "Julian Gruber",
27
+ "email": "mail@juliangruber.com",
28
+ "url": "http://juliangruber.com"
29
+ },
30
+ "license": "MIT",
31
+ "testling": {
32
+ "files": "test/*.js",
33
+ "browsers": [
34
+ "ie/8..latest",
35
+ "firefox/20..latest",
36
+ "firefox/nightly",
37
+ "chrome/25..latest",
38
+ "chrome/canary",
39
+ "opera/12..latest",
40
+ "opera/next",
41
+ "safari/5.1..latest",
42
+ "ipad/6.0..latest",
43
+ "iphone/6.0..latest",
44
+ "android-browser/4.2..latest"
45
+ ]
46
+ }
47
+ }
@@ -0,0 +1,4 @@
1
+ language: node_js
2
+ node_js:
3
+ - 0.4
4
+ - 0.6
@@ -0,0 +1,18 @@
1
+ This software is released under the MIT license:
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
+ the Software, and to permit persons to whom the Software is furnished to do so,
8
+ subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,62 @@
1
+ concat-map
2
+ ==========
3
+
4
+ Concatenative mapdashery.
5
+
6
+ [![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
7
+
8
+ [![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
9
+
10
+ example
11
+ =======
12
+
13
+ ``` js
14
+ var concatMap = require('concat-map');
15
+ var xs = [ 1, 2, 3, 4, 5, 6 ];
16
+ var ys = concatMap(xs, function (x) {
17
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
18
+ });
19
+ console.dir(ys);
20
+ ```
21
+
22
+ ***
23
+
24
+ ```
25
+ [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
26
+ ```
27
+
28
+ methods
29
+ =======
30
+
31
+ ``` js
32
+ var concatMap = require('concat-map')
33
+ ```
34
+
35
+ concatMap(xs, fn)
36
+ -----------------
37
+
38
+ Return an array of concatenated elements by calling `fn(x, i)` for each element
39
+ `x` and each index `i` in the array `xs`.
40
+
41
+ When `fn(x, i)` returns an array, its result will be concatenated with the
42
+ result array. If `fn(x, i)` returns anything else, that value will be pushed
43
+ onto the end of the result array.
44
+
45
+ install
46
+ =======
47
+
48
+ With [npm](http://npmjs.org) do:
49
+
50
+ ```
51
+ npm install concat-map
52
+ ```
53
+
54
+ license
55
+ =======
56
+
57
+ MIT
58
+
59
+ notes
60
+ =====
61
+
62
+ This module was written while sitting high above the ground in a tree.
@@ -0,0 +1,6 @@
1
+ var concatMap = require('../');
2
+ var xs = [ 1, 2, 3, 4, 5, 6 ];
3
+ var ys = concatMap(xs, function (x) {
4
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
5
+ });
6
+ console.dir(ys);
@@ -0,0 +1,13 @@
1
+ module.exports = function (xs, fn) {
2
+ var res = [];
3
+ for (var i = 0; i < xs.length; i++) {
4
+ var x = fn(xs[i], i);
5
+ if (isArray(x)) res.push.apply(res, x);
6
+ else res.push(x);
7
+ }
8
+ return res;
9
+ };
10
+
11
+ var isArray = Array.isArray || function (xs) {
12
+ return Object.prototype.toString.call(xs) === '[object Array]';
13
+ };
@@ -0,0 +1,43 @@
1
+ {
2
+ "name" : "concat-map",
3
+ "description" : "concatenative mapdashery",
4
+ "version" : "0.0.1",
5
+ "repository" : {
6
+ "type" : "git",
7
+ "url" : "git://github.com/substack/node-concat-map.git"
8
+ },
9
+ "main" : "index.js",
10
+ "keywords" : [
11
+ "concat",
12
+ "concatMap",
13
+ "map",
14
+ "functional",
15
+ "higher-order"
16
+ ],
17
+ "directories" : {
18
+ "example" : "example",
19
+ "test" : "test"
20
+ },
21
+ "scripts" : {
22
+ "test" : "tape test/*.js"
23
+ },
24
+ "devDependencies" : {
25
+ "tape" : "~2.4.0"
26
+ },
27
+ "license" : "MIT",
28
+ "author" : {
29
+ "name" : "James Halliday",
30
+ "email" : "mail@substack.net",
31
+ "url" : "http://substack.net"
32
+ },
33
+ "testling" : {
34
+ "files" : "test/*.js",
35
+ "browsers" : {
36
+ "ie" : [ 6, 7, 8, 9 ],
37
+ "ff" : [ 3.5, 10, 15.0 ],
38
+ "chrome" : [ 10, 22 ],
39
+ "safari" : [ 5.1 ],
40
+ "opera" : [ 12 ]
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,39 @@
1
+ var concatMap = require('../');
2
+ var test = require('tape');
3
+
4
+ test('empty or not', function (t) {
5
+ var xs = [ 1, 2, 3, 4, 5, 6 ];
6
+ var ixes = [];
7
+ var ys = concatMap(xs, function (x, ix) {
8
+ ixes.push(ix);
9
+ return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
10
+ });
11
+ t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
12
+ t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
13
+ t.end();
14
+ });
15
+
16
+ test('always something', function (t) {
17
+ var xs = [ 'a', 'b', 'c', 'd' ];
18
+ var ys = concatMap(xs, function (x) {
19
+ return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
20
+ });
21
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
22
+ t.end();
23
+ });
24
+
25
+ test('scalars', function (t) {
26
+ var xs = [ 'a', 'b', 'c', 'd' ];
27
+ var ys = concatMap(xs, function (x) {
28
+ return x === 'b' ? [ 'B', 'B', 'B' ] : x;
29
+ });
30
+ t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
31
+ t.end();
32
+ });
33
+
34
+ test('undefs', function (t) {
35
+ var xs = [ 'a', 'b', 'c', 'd' ];
36
+ var ys = concatMap(xs, function () {});
37
+ t.same(ys, [ undefined, undefined, undefined, undefined ]);
38
+ t.end();
39
+ });
@@ -0,0 +1,19 @@
1
+ Copyright Node.js contributors. All rights reserved.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to
5
+ deal in the Software without restriction, including without limitation the
6
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ sell copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
+ IN THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ # core-util-is
2
+
3
+ The `util.is*` functions introduced in Node v0.12.
@@ -0,0 +1,604 @@
1
+ diff --git a/lib/util.js b/lib/util.js
2
+ index a03e874..9074e8e 100644
3
+ --- a/lib/util.js
4
+ +++ b/lib/util.js
5
+ @@ -19,430 +19,6 @@
6
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
7
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
8
+
9
+ -var formatRegExp = /%[sdj%]/g;
10
+ -exports.format = function(f) {
11
+ - if (!isString(f)) {
12
+ - var objects = [];
13
+ - for (var i = 0; i < arguments.length; i++) {
14
+ - objects.push(inspect(arguments[i]));
15
+ - }
16
+ - return objects.join(' ');
17
+ - }
18
+ -
19
+ - var i = 1;
20
+ - var args = arguments;
21
+ - var len = args.length;
22
+ - var str = String(f).replace(formatRegExp, function(x) {
23
+ - if (x === '%%') return '%';
24
+ - if (i >= len) return x;
25
+ - switch (x) {
26
+ - case '%s': return String(args[i++]);
27
+ - case '%d': return Number(args[i++]);
28
+ - case '%j':
29
+ - try {
30
+ - return JSON.stringify(args[i++]);
31
+ - } catch (_) {
32
+ - return '[Circular]';
33
+ - }
34
+ - default:
35
+ - return x;
36
+ - }
37
+ - });
38
+ - for (var x = args[i]; i < len; x = args[++i]) {
39
+ - if (isNull(x) || !isObject(x)) {
40
+ - str += ' ' + x;
41
+ - } else {
42
+ - str += ' ' + inspect(x);
43
+ - }
44
+ - }
45
+ - return str;
46
+ -};
47
+ -
48
+ -
49
+ -// Mark that a method should not be used.
50
+ -// Returns a modified function which warns once by default.
51
+ -// If --no-deprecation is set, then it is a no-op.
52
+ -exports.deprecate = function(fn, msg) {
53
+ - // Allow for deprecating things in the process of starting up.
54
+ - if (isUndefined(global.process)) {
55
+ - return function() {
56
+ - return exports.deprecate(fn, msg).apply(this, arguments);
57
+ - };
58
+ - }
59
+ -
60
+ - if (process.noDeprecation === true) {
61
+ - return fn;
62
+ - }
63
+ -
64
+ - var warned = false;
65
+ - function deprecated() {
66
+ - if (!warned) {
67
+ - if (process.throwDeprecation) {
68
+ - throw new Error(msg);
69
+ - } else if (process.traceDeprecation) {
70
+ - console.trace(msg);
71
+ - } else {
72
+ - console.error(msg);
73
+ - }
74
+ - warned = true;
75
+ - }
76
+ - return fn.apply(this, arguments);
77
+ - }
78
+ -
79
+ - return deprecated;
80
+ -};
81
+ -
82
+ -
83
+ -var debugs = {};
84
+ -var debugEnviron;
85
+ -exports.debuglog = function(set) {
86
+ - if (isUndefined(debugEnviron))
87
+ - debugEnviron = process.env.NODE_DEBUG || '';
88
+ - set = set.toUpperCase();
89
+ - if (!debugs[set]) {
90
+ - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
91
+ - var pid = process.pid;
92
+ - debugs[set] = function() {
93
+ - var msg = exports.format.apply(exports, arguments);
94
+ - console.error('%s %d: %s', set, pid, msg);
95
+ - };
96
+ - } else {
97
+ - debugs[set] = function() {};
98
+ - }
99
+ - }
100
+ - return debugs[set];
101
+ -};
102
+ -
103
+ -
104
+ -/**
105
+ - * Echos the value of a value. Trys to print the value out
106
+ - * in the best way possible given the different types.
107
+ - *
108
+ - * @param {Object} obj The object to print out.
109
+ - * @param {Object} opts Optional options object that alters the output.
110
+ - */
111
+ -/* legacy: obj, showHidden, depth, colors*/
112
+ -function inspect(obj, opts) {
113
+ - // default options
114
+ - var ctx = {
115
+ - seen: [],
116
+ - stylize: stylizeNoColor
117
+ - };
118
+ - // legacy...
119
+ - if (arguments.length >= 3) ctx.depth = arguments[2];
120
+ - if (arguments.length >= 4) ctx.colors = arguments[3];
121
+ - if (isBoolean(opts)) {
122
+ - // legacy...
123
+ - ctx.showHidden = opts;
124
+ - } else if (opts) {
125
+ - // got an "options" object
126
+ - exports._extend(ctx, opts);
127
+ - }
128
+ - // set default options
129
+ - if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
130
+ - if (isUndefined(ctx.depth)) ctx.depth = 2;
131
+ - if (isUndefined(ctx.colors)) ctx.colors = false;
132
+ - if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
133
+ - if (ctx.colors) ctx.stylize = stylizeWithColor;
134
+ - return formatValue(ctx, obj, ctx.depth);
135
+ -}
136
+ -exports.inspect = inspect;
137
+ -
138
+ -
139
+ -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
140
+ -inspect.colors = {
141
+ - 'bold' : [1, 22],
142
+ - 'italic' : [3, 23],
143
+ - 'underline' : [4, 24],
144
+ - 'inverse' : [7, 27],
145
+ - 'white' : [37, 39],
146
+ - 'grey' : [90, 39],
147
+ - 'black' : [30, 39],
148
+ - 'blue' : [34, 39],
149
+ - 'cyan' : [36, 39],
150
+ - 'green' : [32, 39],
151
+ - 'magenta' : [35, 39],
152
+ - 'red' : [31, 39],
153
+ - 'yellow' : [33, 39]
154
+ -};
155
+ -
156
+ -// Don't use 'blue' not visible on cmd.exe
157
+ -inspect.styles = {
158
+ - 'special': 'cyan',
159
+ - 'number': 'yellow',
160
+ - 'boolean': 'yellow',
161
+ - 'undefined': 'grey',
162
+ - 'null': 'bold',
163
+ - 'string': 'green',
164
+ - 'date': 'magenta',
165
+ - // "name": intentionally not styling
166
+ - 'regexp': 'red'
167
+ -};
168
+ -
169
+ -
170
+ -function stylizeWithColor(str, styleType) {
171
+ - var style = inspect.styles[styleType];
172
+ -
173
+ - if (style) {
174
+ - return '\u001b[' + inspect.colors[style][0] + 'm' + str +
175
+ - '\u001b[' + inspect.colors[style][1] + 'm';
176
+ - } else {
177
+ - return str;
178
+ - }
179
+ -}
180
+ -
181
+ -
182
+ -function stylizeNoColor(str, styleType) {
183
+ - return str;
184
+ -}
185
+ -
186
+ -
187
+ -function arrayToHash(array) {
188
+ - var hash = {};
189
+ -
190
+ - array.forEach(function(val, idx) {
191
+ - hash[val] = true;
192
+ - });
193
+ -
194
+ - return hash;
195
+ -}
196
+ -
197
+ -
198
+ -function formatValue(ctx, value, recurseTimes) {
199
+ - // Provide a hook for user-specified inspect functions.
200
+ - // Check that value is an object with an inspect function on it
201
+ - if (ctx.customInspect &&
202
+ - value &&
203
+ - isFunction(value.inspect) &&
204
+ - // Filter out the util module, it's inspect function is special
205
+ - value.inspect !== exports.inspect &&
206
+ - // Also filter out any prototype objects using the circular check.
207
+ - !(value.constructor && value.constructor.prototype === value)) {
208
+ - var ret = value.inspect(recurseTimes, ctx);
209
+ - if (!isString(ret)) {
210
+ - ret = formatValue(ctx, ret, recurseTimes);
211
+ - }
212
+ - return ret;
213
+ - }
214
+ -
215
+ - // Primitive types cannot have properties
216
+ - var primitive = formatPrimitive(ctx, value);
217
+ - if (primitive) {
218
+ - return primitive;
219
+ - }
220
+ -
221
+ - // Look up the keys of the object.
222
+ - var keys = Object.keys(value);
223
+ - var visibleKeys = arrayToHash(keys);
224
+ -
225
+ - if (ctx.showHidden) {
226
+ - keys = Object.getOwnPropertyNames(value);
227
+ - }
228
+ -
229
+ - // Some type of object without properties can be shortcutted.
230
+ - if (keys.length === 0) {
231
+ - if (isFunction(value)) {
232
+ - var name = value.name ? ': ' + value.name : '';
233
+ - return ctx.stylize('[Function' + name + ']', 'special');
234
+ - }
235
+ - if (isRegExp(value)) {
236
+ - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
237
+ - }
238
+ - if (isDate(value)) {
239
+ - return ctx.stylize(Date.prototype.toString.call(value), 'date');
240
+ - }
241
+ - if (isError(value)) {
242
+ - return formatError(value);
243
+ - }
244
+ - }
245
+ -
246
+ - var base = '', array = false, braces = ['{', '}'];
247
+ -
248
+ - // Make Array say that they are Array
249
+ - if (isArray(value)) {
250
+ - array = true;
251
+ - braces = ['[', ']'];
252
+ - }
253
+ -
254
+ - // Make functions say that they are functions
255
+ - if (isFunction(value)) {
256
+ - var n = value.name ? ': ' + value.name : '';
257
+ - base = ' [Function' + n + ']';
258
+ - }
259
+ -
260
+ - // Make RegExps say that they are RegExps
261
+ - if (isRegExp(value)) {
262
+ - base = ' ' + RegExp.prototype.toString.call(value);
263
+ - }
264
+ -
265
+ - // Make dates with properties first say the date
266
+ - if (isDate(value)) {
267
+ - base = ' ' + Date.prototype.toUTCString.call(value);
268
+ - }
269
+ -
270
+ - // Make error with message first say the error
271
+ - if (isError(value)) {
272
+ - base = ' ' + formatError(value);
273
+ - }
274
+ -
275
+ - if (keys.length === 0 && (!array || value.length == 0)) {
276
+ - return braces[0] + base + braces[1];
277
+ - }
278
+ -
279
+ - if (recurseTimes < 0) {
280
+ - if (isRegExp(value)) {
281
+ - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
282
+ - } else {
283
+ - return ctx.stylize('[Object]', 'special');
284
+ - }
285
+ - }
286
+ -
287
+ - ctx.seen.push(value);
288
+ -
289
+ - var output;
290
+ - if (array) {
291
+ - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
292
+ - } else {
293
+ - output = keys.map(function(key) {
294
+ - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
295
+ - });
296
+ - }
297
+ -
298
+ - ctx.seen.pop();
299
+ -
300
+ - return reduceToSingleString(output, base, braces);
301
+ -}
302
+ -
303
+ -
304
+ -function formatPrimitive(ctx, value) {
305
+ - if (isUndefined(value))
306
+ - return ctx.stylize('undefined', 'undefined');
307
+ - if (isString(value)) {
308
+ - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
309
+ - .replace(/'/g, "\\'")
310
+ - .replace(/\\"/g, '"') + '\'';
311
+ - return ctx.stylize(simple, 'string');
312
+ - }
313
+ - if (isNumber(value)) {
314
+ - // Format -0 as '-0'. Strict equality won't distinguish 0 from -0,
315
+ - // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 .
316
+ - if (value === 0 && 1 / value < 0)
317
+ - return ctx.stylize('-0', 'number');
318
+ - return ctx.stylize('' + value, 'number');
319
+ - }
320
+ - if (isBoolean(value))
321
+ - return ctx.stylize('' + value, 'boolean');
322
+ - // For some reason typeof null is "object", so special case here.
323
+ - if (isNull(value))
324
+ - return ctx.stylize('null', 'null');
325
+ -}
326
+ -
327
+ -
328
+ -function formatError(value) {
329
+ - return '[' + Error.prototype.toString.call(value) + ']';
330
+ -}
331
+ -
332
+ -
333
+ -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
334
+ - var output = [];
335
+ - for (var i = 0, l = value.length; i < l; ++i) {
336
+ - if (hasOwnProperty(value, String(i))) {
337
+ - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
338
+ - String(i), true));
339
+ - } else {
340
+ - output.push('');
341
+ - }
342
+ - }
343
+ - keys.forEach(function(key) {
344
+ - if (!key.match(/^\d+$/)) {
345
+ - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
346
+ - key, true));
347
+ - }
348
+ - });
349
+ - return output;
350
+ -}
351
+ -
352
+ -
353
+ -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
354
+ - var name, str, desc;
355
+ - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
356
+ - if (desc.get) {
357
+ - if (desc.set) {
358
+ - str = ctx.stylize('[Getter/Setter]', 'special');
359
+ - } else {
360
+ - str = ctx.stylize('[Getter]', 'special');
361
+ - }
362
+ - } else {
363
+ - if (desc.set) {
364
+ - str = ctx.stylize('[Setter]', 'special');
365
+ - }
366
+ - }
367
+ - if (!hasOwnProperty(visibleKeys, key)) {
368
+ - name = '[' + key + ']';
369
+ - }
370
+ - if (!str) {
371
+ - if (ctx.seen.indexOf(desc.value) < 0) {
372
+ - if (isNull(recurseTimes)) {
373
+ - str = formatValue(ctx, desc.value, null);
374
+ - } else {
375
+ - str = formatValue(ctx, desc.value, recurseTimes - 1);
376
+ - }
377
+ - if (str.indexOf('\n') > -1) {
378
+ - if (array) {
379
+ - str = str.split('\n').map(function(line) {
380
+ - return ' ' + line;
381
+ - }).join('\n').substr(2);
382
+ - } else {
383
+ - str = '\n' + str.split('\n').map(function(line) {
384
+ - return ' ' + line;
385
+ - }).join('\n');
386
+ - }
387
+ - }
388
+ - } else {
389
+ - str = ctx.stylize('[Circular]', 'special');
390
+ - }
391
+ - }
392
+ - if (isUndefined(name)) {
393
+ - if (array && key.match(/^\d+$/)) {
394
+ - return str;
395
+ - }
396
+ - name = JSON.stringify('' + key);
397
+ - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
398
+ - name = name.substr(1, name.length - 2);
399
+ - name = ctx.stylize(name, 'name');
400
+ - } else {
401
+ - name = name.replace(/'/g, "\\'")
402
+ - .replace(/\\"/g, '"')
403
+ - .replace(/(^"|"$)/g, "'");
404
+ - name = ctx.stylize(name, 'string');
405
+ - }
406
+ - }
407
+ -
408
+ - return name + ': ' + str;
409
+ -}
410
+ -
411
+ -
412
+ -function reduceToSingleString(output, base, braces) {
413
+ - var numLinesEst = 0;
414
+ - var length = output.reduce(function(prev, cur) {
415
+ - numLinesEst++;
416
+ - if (cur.indexOf('\n') >= 0) numLinesEst++;
417
+ - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
418
+ - }, 0);
419
+ -
420
+ - if (length > 60) {
421
+ - return braces[0] +
422
+ - (base === '' ? '' : base + '\n ') +
423
+ - ' ' +
424
+ - output.join(',\n ') +
425
+ - ' ' +
426
+ - braces[1];
427
+ - }
428
+ -
429
+ - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
430
+ -}
431
+ -
432
+ -
433
+ // NOTE: These type checking functions intentionally don't use `instanceof`
434
+ // because it is fragile and can be easily faked with `Object.create()`.
435
+ function isArray(ar) {
436
+ @@ -522,166 +98,10 @@ function isPrimitive(arg) {
437
+ exports.isPrimitive = isPrimitive;
438
+
439
+ function isBuffer(arg) {
440
+ - return arg instanceof Buffer;
441
+ + return Buffer.isBuffer(arg);
442
+ }
443
+ exports.isBuffer = isBuffer;
444
+
445
+ function objectToString(o) {
446
+ return Object.prototype.toString.call(o);
447
+ -}
448
+ -
449
+ -
450
+ -function pad(n) {
451
+ - return n < 10 ? '0' + n.toString(10) : n.toString(10);
452
+ -}
453
+ -
454
+ -
455
+ -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
456
+ - 'Oct', 'Nov', 'Dec'];
457
+ -
458
+ -// 26 Feb 16:19:34
459
+ -function timestamp() {
460
+ - var d = new Date();
461
+ - var time = [pad(d.getHours()),
462
+ - pad(d.getMinutes()),
463
+ - pad(d.getSeconds())].join(':');
464
+ - return [d.getDate(), months[d.getMonth()], time].join(' ');
465
+ -}
466
+ -
467
+ -
468
+ -// log is just a thin wrapper to console.log that prepends a timestamp
469
+ -exports.log = function() {
470
+ - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
471
+ -};
472
+ -
473
+ -
474
+ -/**
475
+ - * Inherit the prototype methods from one constructor into another.
476
+ - *
477
+ - * The Function.prototype.inherits from lang.js rewritten as a standalone
478
+ - * function (not on Function.prototype). NOTE: If this file is to be loaded
479
+ - * during bootstrapping this function needs to be rewritten using some native
480
+ - * functions as prototype setup using normal JavaScript does not work as
481
+ - * expected during bootstrapping (see mirror.js in r114903).
482
+ - *
483
+ - * @param {function} ctor Constructor function which needs to inherit the
484
+ - * prototype.
485
+ - * @param {function} superCtor Constructor function to inherit prototype from.
486
+ - */
487
+ -exports.inherits = function(ctor, superCtor) {
488
+ - ctor.super_ = superCtor;
489
+ - ctor.prototype = Object.create(superCtor.prototype, {
490
+ - constructor: {
491
+ - value: ctor,
492
+ - enumerable: false,
493
+ - writable: true,
494
+ - configurable: true
495
+ - }
496
+ - });
497
+ -};
498
+ -
499
+ -exports._extend = function(origin, add) {
500
+ - // Don't do anything if add isn't an object
501
+ - if (!add || !isObject(add)) return origin;
502
+ -
503
+ - var keys = Object.keys(add);
504
+ - var i = keys.length;
505
+ - while (i--) {
506
+ - origin[keys[i]] = add[keys[i]];
507
+ - }
508
+ - return origin;
509
+ -};
510
+ -
511
+ -function hasOwnProperty(obj, prop) {
512
+ - return Object.prototype.hasOwnProperty.call(obj, prop);
513
+ -}
514
+ -
515
+ -
516
+ -// Deprecated old stuff.
517
+ -
518
+ -exports.p = exports.deprecate(function() {
519
+ - for (var i = 0, len = arguments.length; i < len; ++i) {
520
+ - console.error(exports.inspect(arguments[i]));
521
+ - }
522
+ -}, 'util.p: Use console.error() instead');
523
+ -
524
+ -
525
+ -exports.exec = exports.deprecate(function() {
526
+ - return require('child_process').exec.apply(this, arguments);
527
+ -}, 'util.exec is now called `child_process.exec`.');
528
+ -
529
+ -
530
+ -exports.print = exports.deprecate(function() {
531
+ - for (var i = 0, len = arguments.length; i < len; ++i) {
532
+ - process.stdout.write(String(arguments[i]));
533
+ - }
534
+ -}, 'util.print: Use console.log instead');
535
+ -
536
+ -
537
+ -exports.puts = exports.deprecate(function() {
538
+ - for (var i = 0, len = arguments.length; i < len; ++i) {
539
+ - process.stdout.write(arguments[i] + '\n');
540
+ - }
541
+ -}, 'util.puts: Use console.log instead');
542
+ -
543
+ -
544
+ -exports.debug = exports.deprecate(function(x) {
545
+ - process.stderr.write('DEBUG: ' + x + '\n');
546
+ -}, 'util.debug: Use console.error instead');
547
+ -
548
+ -
549
+ -exports.error = exports.deprecate(function(x) {
550
+ - for (var i = 0, len = arguments.length; i < len; ++i) {
551
+ - process.stderr.write(arguments[i] + '\n');
552
+ - }
553
+ -}, 'util.error: Use console.error instead');
554
+ -
555
+ -
556
+ -exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
557
+ - var callbackCalled = false;
558
+ -
559
+ - function call(a, b, c) {
560
+ - if (callback && !callbackCalled) {
561
+ - callback(a, b, c);
562
+ - callbackCalled = true;
563
+ - }
564
+ - }
565
+ -
566
+ - readStream.addListener('data', function(chunk) {
567
+ - if (writeStream.write(chunk) === false) readStream.pause();
568
+ - });
569
+ -
570
+ - writeStream.addListener('drain', function() {
571
+ - readStream.resume();
572
+ - });
573
+ -
574
+ - readStream.addListener('end', function() {
575
+ - writeStream.end();
576
+ - });
577
+ -
578
+ - readStream.addListener('close', function() {
579
+ - call();
580
+ - });
581
+ -
582
+ - readStream.addListener('error', function(err) {
583
+ - writeStream.end();
584
+ - call(err);
585
+ - });
586
+ -
587
+ - writeStream.addListener('error', function(err) {
588
+ - readStream.destroy();
589
+ - call(err);
590
+ - });
591
+ -}, 'util.pump(): Use readableStream.pipe() instead');
592
+ -
593
+ -
594
+ -var uv;
595
+ -exports._errnoException = function(err, syscall) {
596
+ - if (isUndefined(uv)) uv = process.binding('uv');
597
+ - var errname = uv.errname(err);
598
+ - var e = new Error(syscall + ' ' + errname);
599
+ - e.code = errname;
600
+ - e.errno = errname;
601
+ - e.syscall = syscall;
602
+ - return e;
603
+ -};
604
+ +}