UrgentcareCLI 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/lib/UrgentCare/CLI.rb +1 -2
  3. data/lib/UrgentCare/Scraper.rb +65 -0
  4. data/lib/UrgentCare/version.rb +2 -2
  5. data/lib/UrgentCare.rb +1 -0
  6. metadata +3 -313
  7. data/.gitignore +0 -11
  8. data/.rspec +0 -3
  9. data/.travis.yml +0 -5
  10. data/CODE_OF_CONDUCT.md +0 -74
  11. data/Gemfile +0 -12
  12. data/Gemfile.lock +0 -84
  13. data/LICENSE.txt +0 -21
  14. data/Notes +0 -41
  15. data/README.md +0 -41
  16. data/Rakefile +0 -8
  17. data/UrgentCare.gemspec +0 -39
  18. data/background.jpg +0 -0
  19. data/data.txt +0 -4
  20. data/lib/Urgentcare/Scraper.rb +0 -78
  21. data/node_modules/.bin/rimraf +0 -1
  22. data/node_modules/.package-lock.json +0 -250
  23. data/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  24. data/node_modules/balanced-match/LICENSE.md +0 -21
  25. data/node_modules/balanced-match/README.md +0 -97
  26. data/node_modules/balanced-match/index.js +0 -62
  27. data/node_modules/balanced-match/package.json +0 -48
  28. data/node_modules/brace-expansion/LICENSE +0 -21
  29. data/node_modules/brace-expansion/README.md +0 -129
  30. data/node_modules/brace-expansion/index.js +0 -201
  31. data/node_modules/brace-expansion/package.json +0 -47
  32. data/node_modules/concat-map/.travis.yml +0 -4
  33. data/node_modules/concat-map/LICENSE +0 -18
  34. data/node_modules/concat-map/README.markdown +0 -62
  35. data/node_modules/concat-map/example/map.js +0 -6
  36. data/node_modules/concat-map/index.js +0 -13
  37. data/node_modules/concat-map/package.json +0 -43
  38. data/node_modules/concat-map/test/map.js +0 -39
  39. data/node_modules/core-util-is/LICENSE +0 -19
  40. data/node_modules/core-util-is/README.md +0 -3
  41. data/node_modules/core-util-is/float.patch +0 -604
  42. data/node_modules/core-util-is/lib/util.js +0 -107
  43. data/node_modules/core-util-is/package.json +0 -32
  44. data/node_modules/core-util-is/test.js +0 -68
  45. data/node_modules/fs.realpath/LICENSE +0 -43
  46. data/node_modules/fs.realpath/README.md +0 -33
  47. data/node_modules/fs.realpath/index.js +0 -66
  48. data/node_modules/fs.realpath/old.js +0 -303
  49. data/node_modules/fs.realpath/package.json +0 -26
  50. data/node_modules/glob/LICENSE +0 -21
  51. data/node_modules/glob/README.md +0 -375
  52. data/node_modules/glob/changelog.md +0 -67
  53. data/node_modules/glob/common.js +0 -234
  54. data/node_modules/glob/glob.js +0 -788
  55. data/node_modules/glob/package.json +0 -51
  56. data/node_modules/glob/sync.js +0 -484
  57. data/node_modules/immediate/LICENSE.txt +0 -20
  58. data/node_modules/immediate/README.md +0 -93
  59. data/node_modules/immediate/dist/immediate.js +0 -75
  60. data/node_modules/immediate/dist/immediate.min.js +0 -1
  61. data/node_modules/immediate/lib/browser.js +0 -69
  62. data/node_modules/immediate/lib/index.js +0 -73
  63. data/node_modules/immediate/package.json +0 -42
  64. data/node_modules/inflight/LICENSE +0 -15
  65. data/node_modules/inflight/README.md +0 -37
  66. data/node_modules/inflight/inflight.js +0 -54
  67. data/node_modules/inflight/package.json +0 -29
  68. data/node_modules/inherits/LICENSE +0 -16
  69. data/node_modules/inherits/README.md +0 -42
  70. data/node_modules/inherits/inherits.js +0 -9
  71. data/node_modules/inherits/inherits_browser.js +0 -27
  72. data/node_modules/inherits/package.json +0 -29
  73. data/node_modules/isarray/.npmignore +0 -1
  74. data/node_modules/isarray/.travis.yml +0 -4
  75. data/node_modules/isarray/Makefile +0 -6
  76. data/node_modules/isarray/README.md +0 -60
  77. data/node_modules/isarray/component.json +0 -19
  78. data/node_modules/isarray/index.js +0 -5
  79. data/node_modules/isarray/package.json +0 -45
  80. data/node_modules/isarray/test.js +0 -20
  81. data/node_modules/jszip/.codeclimate.yml +0 -16
  82. data/node_modules/jszip/.editorconfig +0 -8
  83. data/node_modules/jszip/.jshintignore +0 -1
  84. data/node_modules/jszip/.jshintrc +0 -21
  85. data/node_modules/jszip/.travis.yml +0 -17
  86. data/node_modules/jszip/CHANGES.md +0 -163
  87. data/node_modules/jszip/LICENSE.markdown +0 -651
  88. data/node_modules/jszip/README.markdown +0 -35
  89. data/node_modules/jszip/dist/jszip.js +0 -30
  90. data/node_modules/jszip/dist/jszip.min.js +0 -13
  91. data/node_modules/jszip/index.d.ts +0 -270
  92. data/node_modules/jszip/lib/base64.js +0 -106
  93. data/node_modules/jszip/lib/compressedObject.js +0 -74
  94. data/node_modules/jszip/lib/compressions.js +0 -14
  95. data/node_modules/jszip/lib/crc32.js +0 -77
  96. data/node_modules/jszip/lib/defaults.js +0 -11
  97. data/node_modules/jszip/lib/external.js +0 -19
  98. data/node_modules/jszip/lib/flate.js +0 -85
  99. data/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  100. data/node_modules/jszip/lib/generate/index.js +0 -57
  101. data/node_modules/jszip/lib/index.js +0 -52
  102. data/node_modules/jszip/lib/license_header.js +0 -11
  103. data/node_modules/jszip/lib/load.js +0 -81
  104. data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  105. data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  106. data/node_modules/jszip/lib/nodejsUtils.js +0 -57
  107. data/node_modules/jszip/lib/object.js +0 -389
  108. data/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  109. data/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  110. data/node_modules/jszip/lib/reader/DataReader.js +0 -116
  111. data/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  112. data/node_modules/jszip/lib/reader/StringReader.js +0 -38
  113. data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  114. data/node_modules/jszip/lib/reader/readerFor.js +0 -28
  115. data/node_modules/jszip/lib/signature.js +0 -7
  116. data/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  117. data/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  118. data/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  119. data/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  120. data/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  121. data/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  122. data/node_modules/jszip/lib/support.js +0 -38
  123. data/node_modules/jszip/lib/utf8.js +0 -275
  124. data/node_modules/jszip/lib/utils.js +0 -476
  125. data/node_modules/jszip/lib/zipEntries.js +0 -262
  126. data/node_modules/jszip/lib/zipEntry.js +0 -294
  127. data/node_modules/jszip/lib/zipObject.js +0 -133
  128. data/node_modules/jszip/package.json +0 -63
  129. data/node_modules/jszip/vendor/FileSaver.js +0 -247
  130. data/node_modules/lie/README.md +0 -62
  131. data/node_modules/lie/dist/lie.js +0 -350
  132. data/node_modules/lie/dist/lie.min.js +0 -1
  133. data/node_modules/lie/dist/lie.polyfill.js +0 -358
  134. data/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  135. data/node_modules/lie/lib/browser.js +0 -273
  136. data/node_modules/lie/lib/index.js +0 -298
  137. data/node_modules/lie/license.md +0 -7
  138. data/node_modules/lie/lie.d.ts +0 -244
  139. data/node_modules/lie/package.json +0 -69
  140. data/node_modules/lie/polyfill.js +0 -4
  141. data/node_modules/minimatch/LICENSE +0 -15
  142. data/node_modules/minimatch/README.md +0 -209
  143. data/node_modules/minimatch/minimatch.js +0 -923
  144. data/node_modules/minimatch/package.json +0 -30
  145. data/node_modules/once/LICENSE +0 -15
  146. data/node_modules/once/README.md +0 -79
  147. data/node_modules/once/once.js +0 -42
  148. data/node_modules/once/package.json +0 -33
  149. data/node_modules/pako/CHANGELOG.md +0 -164
  150. data/node_modules/pako/LICENSE +0 -21
  151. data/node_modules/pako/README.md +0 -191
  152. data/node_modules/pako/dist/pako.js +0 -6818
  153. data/node_modules/pako/dist/pako.min.js +0 -1
  154. data/node_modules/pako/dist/pako_deflate.js +0 -3997
  155. data/node_modules/pako/dist/pako_deflate.min.js +0 -1
  156. data/node_modules/pako/dist/pako_inflate.js +0 -3300
  157. data/node_modules/pako/dist/pako_inflate.min.js +0 -1
  158. data/node_modules/pako/index.js +0 -14
  159. data/node_modules/pako/lib/deflate.js +0 -400
  160. data/node_modules/pako/lib/inflate.js +0 -423
  161. data/node_modules/pako/lib/utils/common.js +0 -105
  162. data/node_modules/pako/lib/utils/strings.js +0 -187
  163. data/node_modules/pako/lib/zlib/README +0 -59
  164. data/node_modules/pako/lib/zlib/adler32.js +0 -51
  165. data/node_modules/pako/lib/zlib/constants.js +0 -68
  166. data/node_modules/pako/lib/zlib/crc32.js +0 -59
  167. data/node_modules/pako/lib/zlib/deflate.js +0 -1874
  168. data/node_modules/pako/lib/zlib/gzheader.js +0 -58
  169. data/node_modules/pako/lib/zlib/inffast.js +0 -345
  170. data/node_modules/pako/lib/zlib/inflate.js +0 -1556
  171. data/node_modules/pako/lib/zlib/inftrees.js +0 -343
  172. data/node_modules/pako/lib/zlib/messages.js +0 -32
  173. data/node_modules/pako/lib/zlib/trees.js +0 -1222
  174. data/node_modules/pako/lib/zlib/zstream.js +0 -47
  175. data/node_modules/pako/package.json +0 -44
  176. data/node_modules/path-is-absolute/index.js +0 -20
  177. data/node_modules/path-is-absolute/license +0 -21
  178. data/node_modules/path-is-absolute/package.json +0 -43
  179. data/node_modules/path-is-absolute/readme.md +0 -59
  180. data/node_modules/process-nextick-args/index.js +0 -45
  181. data/node_modules/process-nextick-args/license.md +0 -19
  182. data/node_modules/process-nextick-args/package.json +0 -25
  183. data/node_modules/process-nextick-args/readme.md +0 -18
  184. data/node_modules/readable-stream/.travis.yml +0 -34
  185. data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  186. data/node_modules/readable-stream/GOVERNANCE.md +0 -136
  187. data/node_modules/readable-stream/LICENSE +0 -47
  188. data/node_modules/readable-stream/README.md +0 -58
  189. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  190. data/node_modules/readable-stream/duplex-browser.js +0 -1
  191. data/node_modules/readable-stream/duplex.js +0 -1
  192. data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  193. data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  194. data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  195. data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  196. data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  197. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  198. data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  199. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  200. data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  201. data/node_modules/readable-stream/package.json +0 -52
  202. data/node_modules/readable-stream/passthrough.js +0 -1
  203. data/node_modules/readable-stream/readable-browser.js +0 -7
  204. data/node_modules/readable-stream/readable.js +0 -19
  205. data/node_modules/readable-stream/transform.js +0 -1
  206. data/node_modules/readable-stream/writable-browser.js +0 -1
  207. data/node_modules/readable-stream/writable.js +0 -8
  208. data/node_modules/rimraf/LICENSE +0 -15
  209. data/node_modules/rimraf/README.md +0 -101
  210. data/node_modules/rimraf/bin.js +0 -50
  211. data/node_modules/rimraf/package.json +0 -29
  212. data/node_modules/rimraf/rimraf.js +0 -372
  213. data/node_modules/safe-buffer/LICENSE +0 -21
  214. data/node_modules/safe-buffer/README.md +0 -584
  215. data/node_modules/safe-buffer/index.d.ts +0 -187
  216. data/node_modules/safe-buffer/index.js +0 -62
  217. data/node_modules/safe-buffer/package.json +0 -37
  218. data/node_modules/selenium-webdriver/CHANGES.md +0 -1114
  219. data/node_modules/selenium-webdriver/LICENSE +0 -202
  220. data/node_modules/selenium-webdriver/NOTICE +0 -2
  221. data/node_modules/selenium-webdriver/README.md +0 -229
  222. data/node_modules/selenium-webdriver/chrome.js +0 -295
  223. data/node_modules/selenium-webdriver/chromium.js +0 -829
  224. data/node_modules/selenium-webdriver/devtools/CDPConnection.js +0 -35
  225. data/node_modules/selenium-webdriver/edge.js +0 -224
  226. data/node_modules/selenium-webdriver/example/chrome_android.js +0 -45
  227. data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +0 -46
  228. data/node_modules/selenium-webdriver/example/firefox_channels.js +0 -84
  229. data/node_modules/selenium-webdriver/example/google_search.js +0 -50
  230. data/node_modules/selenium-webdriver/example/google_search_test.js +0 -70
  231. data/node_modules/selenium-webdriver/example/headless.js +0 -63
  232. data/node_modules/selenium-webdriver/example/logging.js +0 -64
  233. data/node_modules/selenium-webdriver/firefox.js +0 -789
  234. data/node_modules/selenium-webdriver/http/index.js +0 -324
  235. data/node_modules/selenium-webdriver/http/util.js +0 -172
  236. data/node_modules/selenium-webdriver/ie.js +0 -503
  237. data/node_modules/selenium-webdriver/index.js +0 -825
  238. data/node_modules/selenium-webdriver/io/exec.js +0 -162
  239. data/node_modules/selenium-webdriver/io/index.js +0 -348
  240. data/node_modules/selenium-webdriver/io/zip.js +0 -223
  241. data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +0 -123
  242. data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +0 -101
  243. data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +0 -101
  244. data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +0 -55
  245. data/node_modules/selenium-webdriver/lib/by.js +0 -415
  246. data/node_modules/selenium-webdriver/lib/capabilities.js +0 -553
  247. data/node_modules/selenium-webdriver/lib/command.js +0 -206
  248. data/node_modules/selenium-webdriver/lib/error.js +0 -605
  249. data/node_modules/selenium-webdriver/lib/http.js +0 -704
  250. data/node_modules/selenium-webdriver/lib/input.js +0 -946
  251. data/node_modules/selenium-webdriver/lib/logging.js +0 -661
  252. data/node_modules/selenium-webdriver/lib/promise.js +0 -285
  253. data/node_modules/selenium-webdriver/lib/proxy.js +0 -212
  254. data/node_modules/selenium-webdriver/lib/session.js +0 -77
  255. data/node_modules/selenium-webdriver/lib/symbols.js +0 -37
  256. data/node_modules/selenium-webdriver/lib/until.js +0 -429
  257. data/node_modules/selenium-webdriver/lib/webdriver.js +0 -2919
  258. data/node_modules/selenium-webdriver/net/index.js +0 -107
  259. data/node_modules/selenium-webdriver/net/portprober.js +0 -75
  260. data/node_modules/selenium-webdriver/opera.js +0 -406
  261. data/node_modules/selenium-webdriver/package.json +0 -54
  262. data/node_modules/selenium-webdriver/proxy.js +0 -32
  263. data/node_modules/selenium-webdriver/remote/index.js +0 -624
  264. data/node_modules/selenium-webdriver/safari.js +0 -168
  265. data/node_modules/selenium-webdriver/testing/index.js +0 -504
  266. data/node_modules/set-immediate-shim/index.js +0 -7
  267. data/node_modules/set-immediate-shim/package.json +0 -34
  268. data/node_modules/set-immediate-shim/readme.md +0 -31
  269. data/node_modules/string_decoder/.travis.yml +0 -50
  270. data/node_modules/string_decoder/LICENSE +0 -48
  271. data/node_modules/string_decoder/README.md +0 -47
  272. data/node_modules/string_decoder/lib/string_decoder.js +0 -296
  273. data/node_modules/string_decoder/package.json +0 -31
  274. data/node_modules/tmp/CHANGELOG.md +0 -288
  275. data/node_modules/tmp/LICENSE +0 -21
  276. data/node_modules/tmp/README.md +0 -365
  277. data/node_modules/tmp/lib/tmp.js +0 -780
  278. data/node_modules/tmp/node_modules/.bin/rimraf +0 -1
  279. data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +0 -65
  280. data/node_modules/tmp/node_modules/rimraf/LICENSE +0 -15
  281. data/node_modules/tmp/node_modules/rimraf/README.md +0 -101
  282. data/node_modules/tmp/node_modules/rimraf/bin.js +0 -68
  283. data/node_modules/tmp/node_modules/rimraf/package.json +0 -32
  284. data/node_modules/tmp/node_modules/rimraf/rimraf.js +0 -360
  285. data/node_modules/tmp/package.json +0 -58
  286. data/node_modules/util-deprecate/History.md +0 -16
  287. data/node_modules/util-deprecate/LICENSE +0 -24
  288. data/node_modules/util-deprecate/README.md +0 -53
  289. data/node_modules/util-deprecate/browser.js +0 -67
  290. data/node_modules/util-deprecate/node.js +0 -6
  291. data/node_modules/util-deprecate/package.json +0 -27
  292. data/node_modules/wrappy/LICENSE +0 -15
  293. data/node_modules/wrappy/README.md +0 -36
  294. data/node_modules/wrappy/package.json +0 -29
  295. data/node_modules/wrappy/wrappy.js +0 -33
  296. data/node_modules/ws/LICENSE +0 -21
  297. data/node_modules/ws/README.md +0 -496
  298. data/node_modules/ws/browser.js +0 -8
  299. data/node_modules/ws/index.js +0 -10
  300. data/node_modules/ws/lib/buffer-util.js +0 -129
  301. data/node_modules/ws/lib/constants.js +0 -10
  302. data/node_modules/ws/lib/event-target.js +0 -184
  303. data/node_modules/ws/lib/extension.js +0 -223
  304. data/node_modules/ws/lib/limiter.js +0 -55
  305. data/node_modules/ws/lib/permessage-deflate.js +0 -517
  306. data/node_modules/ws/lib/receiver.js +0 -507
  307. data/node_modules/ws/lib/sender.js +0 -405
  308. data/node_modules/ws/lib/stream.js +0 -165
  309. data/node_modules/ws/lib/validation.js +0 -104
  310. data/node_modules/ws/lib/websocket-server.js +0 -418
  311. data/node_modules/ws/lib/websocket.js +0 -942
  312. data/node_modules/ws/package.json +0 -56
  313. data/package-lock.json +0 -458
  314. data/package.json +0 -5
  315. data/selenium.log +0 -1
  316. data/spec.md +0 -6
  317. data/test.data +0 -2110
@@ -1,20 +0,0 @@
1
- Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,93 +0,0 @@
1
- # immediate [![Build Status](https://travis-ci.org/calvinmetcalf/immediate.svg?branch=master)](https://travis-ci.org/calvinmetcalf/immediate)
2
-
3
- ```
4
- npm install immediate --save
5
- ```
6
-
7
- then
8
-
9
- ```js
10
- var immediate = require("immediate");
11
-
12
- immediate(function () {
13
- // this will run soon
14
- });
15
-
16
- immediate(function (arg1, arg2) {
17
- // get your args like in iojs
18
- }, thing1, thing2);
19
- ```
20
-
21
- ## Introduction
22
-
23
- **immediate** is a microtask library, decended from [NobleJS's setImmediate](https://github.com/NobleJS/setImmediate), but including ideas from [Cujo's When](https://github.com/cujojs/when) and [RSVP][RSVP].
24
-
25
- immediate takes the tricks from setImmedate and RSVP and combines them with the schedualer inspired (vaugly) by whens.
26
-
27
- Note versions 2.6.5 and earlier were strictly speaking a 'macrotask' library not a microtask one, [see this for the difference](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks), if you need a macrotask library, [I got you covered](https://github.com/calvinmetcalf/macrotask).
28
-
29
- Several new features were added in versions 3.1.0 and 3.2.0 to maintain parity with
30
- process.nextTick, but the 3.0.x series is still being kept up to date if you just need
31
- the small barebones version.
32
-
33
-
34
- ## The Tricks
35
-
36
- ### `process.nextTick`
37
-
38
- Note that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar.
39
-
40
- ### `MutationObserver`
41
-
42
- This is what [RSVP][RSVP] uses, it's very fast, details on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver).
43
-
44
-
45
- ### `MessageChannel`
46
-
47
- Unfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we
48
- turn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker.
49
-
50
- ### `<script> onreadystatechange`
51
-
52
- For our last trick, we pull something out to make things fast in Internet Explorer versions 6 through 8: namely,
53
- creating a `<script>` element and firing our calls in its `onreadystatechange` event. This does execute in a future
54
- turn of the event loop, and is also faster than `setTimeout(…, 0)`, so hey, why not?
55
-
56
- ## Tricks we don't use
57
-
58
- ### `setImmediate`
59
- We avoid this process.nextTick in node is better suited to our needs and in Internet Explorer 10 there is a broken version of setImmediate we avoid using this.
60
-
61
-
62
- In Node.js, do
63
-
64
- ```
65
- npm install immediate
66
- ```
67
-
68
- then
69
-
70
- ```js
71
- var immediate = require("immediate");
72
- ```
73
-
74
-
75
- ## Reference and Reading
76
-
77
- * [Efficient Script Yielding W3C Editor's Draft][spec]
78
- * [W3C mailing list post introducing the specification][list-post]
79
- * [IE Test Drive demo][ie-demo]
80
- * [Introductory blog post by Nicholas C. Zakas][ncz]
81
- * I wrote a couple blog pots on this, [part 1][my-blog-1] and [part 2][my-blog-2]
82
-
83
- [RSVP]: https://github.com/tildeio/rsvp.js
84
- [spec]: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html
85
- [list-post]: http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html
86
- [ie-demo]: http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html
87
- [ncz]: http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/
88
- [nextTick]: http://nodejs.org/docs/v0.8.16/api/process.html#process_process_nexttick_callback
89
- [postMessage]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages
90
- [MessageChannel]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging
91
- [cross-browser-demo]: http://calvinmetcalf.github.io/setImmediate-shim-demo
92
- [my-blog-1]:http://calvinmetcalf.com/post/61672207151/setimmediate-etc
93
- [my-blog-2]:http://calvinmetcalf.com/post/61761231881/javascript-schedulers
@@ -1,75 +0,0 @@
1
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.immediate = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
2
- (function (global){
3
- 'use strict';
4
- var Mutation = global.MutationObserver || global.WebKitMutationObserver;
5
-
6
- var scheduleDrain;
7
-
8
- {
9
- if (Mutation) {
10
- var called = 0;
11
- var observer = new Mutation(nextTick);
12
- var element = global.document.createTextNode('');
13
- observer.observe(element, {
14
- characterData: true
15
- });
16
- scheduleDrain = function () {
17
- element.data = (called = ++called % 2);
18
- };
19
- } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
20
- var channel = new global.MessageChannel();
21
- channel.port1.onmessage = nextTick;
22
- scheduleDrain = function () {
23
- channel.port2.postMessage(0);
24
- };
25
- } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
26
- scheduleDrain = function () {
27
-
28
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
29
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
30
- var scriptEl = global.document.createElement('script');
31
- scriptEl.onreadystatechange = function () {
32
- nextTick();
33
-
34
- scriptEl.onreadystatechange = null;
35
- scriptEl.parentNode.removeChild(scriptEl);
36
- scriptEl = null;
37
- };
38
- global.document.documentElement.appendChild(scriptEl);
39
- };
40
- } else {
41
- scheduleDrain = function () {
42
- setTimeout(nextTick, 0);
43
- };
44
- }
45
- }
46
-
47
- var draining;
48
- var queue = [];
49
- //named nextTick for less confusing stack traces
50
- function nextTick() {
51
- draining = true;
52
- var i, oldQueue;
53
- var len = queue.length;
54
- while (len) {
55
- oldQueue = queue;
56
- queue = [];
57
- i = -1;
58
- while (++i < len) {
59
- oldQueue[i]();
60
- }
61
- len = queue.length;
62
- }
63
- draining = false;
64
- }
65
-
66
- module.exports = immediate;
67
- function immediate(task) {
68
- if (queue.push(task) === 1 && !draining) {
69
- scheduleDrain();
70
- }
71
- }
72
-
73
- }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
74
- },{}]},{},[1])(1)
75
- });
@@ -1 +0,0 @@
1
- !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.immediate=e()}}(function(){return function e(n,t,o){function r(f,u){if(!t[f]){if(!n[f]){var a="function"==typeof require&&require;if(!u&&a)return a(f,!0);if(i)return i(f,!0);var d=new Error("Cannot find module '"+f+"'");throw d.code="MODULE_NOT_FOUND",d}var s=t[f]={exports:{}};n[f][0].call(s.exports,function(e){var t=n[f][1][e];return r(t?t:e)},s,s.exports,e,n,t,o)}return t[f].exports}for(var i="function"==typeof require&&require,f=0;f<o.length;f++)r(o[f]);return r}({1:[function(e,n,t){(function(e){"use strict";function t(){s=!0;for(var e,n,t=c.length;t;){for(n=c,c=[],e=-1;++e<t;)n[e]();t=c.length}s=!1}function o(e){1!==c.push(e)||s||r()}var r,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var f=0,u=new i(t),a=e.document.createTextNode("");u.observe(a,{characterData:!0}),r=function(){a.data=f=++f%2}}else if(e.setImmediate||"undefined"==typeof e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var n=e.document.createElement("script");n.onreadystatechange=function(){t(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},e.document.documentElement.appendChild(n)}:function(){setTimeout(t,0)};else{var d=new e.MessageChannel;d.port1.onmessage=t,r=function(){d.port2.postMessage(0)}}var s,c=[];n.exports=o}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)});
@@ -1,69 +0,0 @@
1
- 'use strict';
2
- var Mutation = global.MutationObserver || global.WebKitMutationObserver;
3
-
4
- var scheduleDrain;
5
-
6
- {
7
- if (Mutation) {
8
- var called = 0;
9
- var observer = new Mutation(nextTick);
10
- var element = global.document.createTextNode('');
11
- observer.observe(element, {
12
- characterData: true
13
- });
14
- scheduleDrain = function () {
15
- element.data = (called = ++called % 2);
16
- };
17
- } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
18
- var channel = new global.MessageChannel();
19
- channel.port1.onmessage = nextTick;
20
- scheduleDrain = function () {
21
- channel.port2.postMessage(0);
22
- };
23
- } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
24
- scheduleDrain = function () {
25
-
26
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
27
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
28
- var scriptEl = global.document.createElement('script');
29
- scriptEl.onreadystatechange = function () {
30
- nextTick();
31
-
32
- scriptEl.onreadystatechange = null;
33
- scriptEl.parentNode.removeChild(scriptEl);
34
- scriptEl = null;
35
- };
36
- global.document.documentElement.appendChild(scriptEl);
37
- };
38
- } else {
39
- scheduleDrain = function () {
40
- setTimeout(nextTick, 0);
41
- };
42
- }
43
- }
44
-
45
- var draining;
46
- var queue = [];
47
- //named nextTick for less confusing stack traces
48
- function nextTick() {
49
- draining = true;
50
- var i, oldQueue;
51
- var len = queue.length;
52
- while (len) {
53
- oldQueue = queue;
54
- queue = [];
55
- i = -1;
56
- while (++i < len) {
57
- oldQueue[i]();
58
- }
59
- len = queue.length;
60
- }
61
- draining = false;
62
- }
63
-
64
- module.exports = immediate;
65
- function immediate(task) {
66
- if (queue.push(task) === 1 && !draining) {
67
- scheduleDrain();
68
- }
69
- }
@@ -1,73 +0,0 @@
1
- 'use strict';
2
- var Mutation = global.MutationObserver || global.WebKitMutationObserver;
3
-
4
- var scheduleDrain;
5
-
6
- if (process.browser) {
7
- if (Mutation) {
8
- var called = 0;
9
- var observer = new Mutation(nextTick);
10
- var element = global.document.createTextNode('');
11
- observer.observe(element, {
12
- characterData: true
13
- });
14
- scheduleDrain = function () {
15
- element.data = (called = ++called % 2);
16
- };
17
- } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
18
- var channel = new global.MessageChannel();
19
- channel.port1.onmessage = nextTick;
20
- scheduleDrain = function () {
21
- channel.port2.postMessage(0);
22
- };
23
- } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
24
- scheduleDrain = function () {
25
-
26
- // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
27
- // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
28
- var scriptEl = global.document.createElement('script');
29
- scriptEl.onreadystatechange = function () {
30
- nextTick();
31
-
32
- scriptEl.onreadystatechange = null;
33
- scriptEl.parentNode.removeChild(scriptEl);
34
- scriptEl = null;
35
- };
36
- global.document.documentElement.appendChild(scriptEl);
37
- };
38
- } else {
39
- scheduleDrain = function () {
40
- setTimeout(nextTick, 0);
41
- };
42
- }
43
- } else {
44
- scheduleDrain = function () {
45
- process.nextTick(nextTick);
46
- };
47
- }
48
-
49
- var draining;
50
- var queue = [];
51
- //named nextTick for less confusing stack traces
52
- function nextTick() {
53
- draining = true;
54
- var i, oldQueue;
55
- var len = queue.length;
56
- while (len) {
57
- oldQueue = queue;
58
- queue = [];
59
- i = -1;
60
- while (++i < len) {
61
- oldQueue[i]();
62
- }
63
- len = queue.length;
64
- }
65
- draining = false;
66
- }
67
-
68
- module.exports = immediate;
69
- function immediate(task) {
70
- if (queue.push(task) === 1 && !draining) {
71
- scheduleDrain();
72
- }
73
- }
@@ -1,42 +0,0 @@
1
- {
2
- "name": "immediate",
3
- "version": "3.0.6",
4
- "description": "A cross browser microtask library",
5
- "contributors": [
6
- "Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com)",
7
- "Donavon West <github@donavon.com> (http://donavon.com)",
8
- "Yaffle",
9
- "Calvin Metcalf <calvin.metcalf@gmail.com>"
10
- ],
11
- "license": "MIT",
12
- "repository": {
13
- "type": "git",
14
- "url": "git://github.com/calvinmetcalf/immediate.git"
15
- },
16
- "files": [
17
- "lib",
18
- "dist"
19
- ],
20
- "bugs": "https://github.com/calvinmetcalf/immediate/issues",
21
- "main": "lib/index.js",
22
- "scripts": {
23
- "build": "npm run build-node && npm run build-js && npm run uglify",
24
- "build-node": "browserify-transform-cli inline-process-browser unreachable-branch-transform < ./lib/index.js > ./lib/browser.js",
25
- "uglify": "uglifyjs dist/immediate.js -mc > dist/immediate.min.js",
26
- "build-js": "browserify -s immediate ./lib/browser.js | derequire > dist/immediate.js",
27
- "test": "jshint lib/*.js && node test/tests.js"
28
- },
29
- "browser": {
30
- "./lib/index.js": "./lib/browser.js"
31
- },
32
- "devDependencies": {
33
- "browserify": "^13.0.0",
34
- "browserify-transform-cli": "^1.1.1",
35
- "derequire": "^2.0.0",
36
- "inline-process-browser": "^2.0.0",
37
- "jshint": "^2.5.1",
38
- "tape": "^4.0.0",
39
- "uglify-js": "^2.4.13",
40
- "unreachable-branch-transform": "^0.5.1"
41
- }
42
- }
@@ -1,15 +0,0 @@
1
- The ISC License
2
-
3
- Copyright (c) Isaac Z. Schlueter
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted, provided that the above
7
- copyright notice and this permission notice appear in all copies.
8
-
9
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
- IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -1,37 +0,0 @@
1
- # inflight
2
-
3
- Add callbacks to requests in flight to avoid async duplication
4
-
5
- ## USAGE
6
-
7
- ```javascript
8
- var inflight = require('inflight')
9
-
10
- // some request that does some stuff
11
- function req(key, callback) {
12
- // key is any random string. like a url or filename or whatever.
13
- //
14
- // will return either a falsey value, indicating that the
15
- // request for this key is already in flight, or a new callback
16
- // which when called will call all callbacks passed to inflightk
17
- // with the same key
18
- callback = inflight(key, callback)
19
-
20
- // If we got a falsey value back, then there's already a req going
21
- if (!callback) return
22
-
23
- // this is where you'd fetch the url or whatever
24
- // callback is also once()-ified, so it can safely be assigned
25
- // to multiple events etc. First call wins.
26
- setTimeout(function() {
27
- callback(null, key)
28
- }, 100)
29
- }
30
-
31
- // only assigns a single setTimeout
32
- // when it dings, all cbs get called
33
- req('foo', cb1)
34
- req('foo', cb2)
35
- req('foo', cb3)
36
- req('foo', cb4)
37
- ```
@@ -1,54 +0,0 @@
1
- var wrappy = require('wrappy')
2
- var reqs = Object.create(null)
3
- var once = require('once')
4
-
5
- module.exports = wrappy(inflight)
6
-
7
- function inflight (key, cb) {
8
- if (reqs[key]) {
9
- reqs[key].push(cb)
10
- return null
11
- } else {
12
- reqs[key] = [cb]
13
- return makeres(key)
14
- }
15
- }
16
-
17
- function makeres (key) {
18
- return once(function RES () {
19
- var cbs = reqs[key]
20
- var len = cbs.length
21
- var args = slice(arguments)
22
-
23
- // XXX It's somewhat ambiguous whether a new callback added in this
24
- // pass should be queued for later execution if something in the
25
- // list of callbacks throws, or if it should just be discarded.
26
- // However, it's such an edge case that it hardly matters, and either
27
- // choice is likely as surprising as the other.
28
- // As it happens, we do go ahead and schedule it for later execution.
29
- try {
30
- for (var i = 0; i < len; i++) {
31
- cbs[i].apply(null, args)
32
- }
33
- } finally {
34
- if (cbs.length > len) {
35
- // added more in the interim.
36
- // de-zalgo, just in case, but don't call again.
37
- cbs.splice(0, len)
38
- process.nextTick(function () {
39
- RES.apply(null, args)
40
- })
41
- } else {
42
- delete reqs[key]
43
- }
44
- }
45
- })
46
- }
47
-
48
- function slice (args) {
49
- var length = args.length
50
- var array = []
51
-
52
- for (var i = 0; i < length; i++) array[i] = args[i]
53
- return array
54
- }