batman-rails-flo 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 (162) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +29 -0
  3. data/Rakefile +2 -0
  4. data/lib/batman-rails-flo.rb +5 -0
  5. data/lib/batman_rails_flo/railtie.rb +9 -0
  6. data/lib/batman_rails_flo/tasks.rake +14 -0
  7. data/lib/batman_rails_flo/version.rb +3 -0
  8. data/vendor/assets/javascripts/batman_rails_flo/flo_server.js +67 -0
  9. data/vendor/assets/javascripts/batman_rails_flo/live_reload.js.coffee +129 -0
  10. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/CNAME +1 -0
  11. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/CONTRIBUTING.md +9 -0
  12. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/LICENSE +22 -0
  13. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/README +50 -0
  14. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/bin/cake +7 -0
  15. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/bin/coffee +7 -0
  16. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/browser.js +134 -0
  17. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/cake.js +112 -0
  18. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/coffee-script.js +335 -0
  19. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/command.js +569 -0
  20. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/grammar.js +631 -0
  21. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/helpers.js +252 -0
  22. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/index.js +11 -0
  23. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/lexer.js +926 -0
  24. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/nodes.js +3158 -0
  25. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/optparse.js +139 -0
  26. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/parser.js +724 -0
  27. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/register.js +66 -0
  28. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/repl.js +163 -0
  29. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/rewriter.js +475 -0
  30. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/scope.js +146 -0
  31. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/sourcemap.js +161 -0
  32. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/LICENSE +21 -0
  33. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/examples/pow.js +6 -0
  34. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/index.js +82 -0
  35. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/package.json +34 -0
  36. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/readme.markdown +63 -0
  37. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/chmod.js +38 -0
  38. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/clobber.js +37 -0
  39. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/mkdirp.js +28 -0
  40. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/perm.js +32 -0
  41. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/perm_sync.js +39 -0
  42. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/race.js +41 -0
  43. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/rel.js +32 -0
  44. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/return.js +25 -0
  45. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/return_sync.js +24 -0
  46. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/root.js +18 -0
  47. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/sync.js +32 -0
  48. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/umask.js +28 -0
  49. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/umask_sync.js +32 -0
  50. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/package.json +50 -0
  51. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/register.js +1 -0
  52. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/LICENSE +30 -0
  53. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/PATENTS +23 -0
  54. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/README.md +124 -0
  55. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/bin/flo +26 -0
  56. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/configure.html +57 -0
  57. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/configure.js +205 -0
  58. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/style.css +334 -0
  59. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/connection.js +235 -0
  60. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/devtools.html +12 -0
  61. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/index.js +323 -0
  62. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/logger.js +42 -0
  63. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/logo.png +0 -0
  64. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/manifest.json +13 -0
  65. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/session.js +305 -0
  66. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/index.js +10 -0
  67. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/lib/flo.js +226 -0
  68. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/lib/server.js +94 -0
  69. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/README.md +66 -0
  70. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/index.js +437 -0
  71. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/LICENSE +23 -0
  72. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/README.md +218 -0
  73. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/minimatch.js +1055 -0
  74. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  75. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  76. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  77. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  78. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
  79. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  80. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  81. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  82. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  83. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  84. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  85. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  86. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  87. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  88. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/package.json +40 -0
  89. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/basic.js +399 -0
  90. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/brace-expand.js +33 -0
  91. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/caching.js +14 -0
  92. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/defaults.js +274 -0
  93. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  94. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/lib/walker.js +111 -0
  95. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/license +13 -0
  96. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/lib/makeerror.js +87 -0
  97. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/lib/tmpl.js +17 -0
  98. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/package.json +31 -0
  99. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/readme.md +10 -0
  100. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/package.json +34 -0
  101. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/readme.md +77 -0
  102. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/package.json +36 -0
  103. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/readme.md +52 -0
  104. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/LICENSE +55 -0
  105. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/main.js +128 -0
  106. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/package.json +34 -0
  107. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/readme.mkd +72 -0
  108. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/d/d/t +0 -0
  109. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/d/t +0 -0
  110. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_monitor.js +31 -0
  111. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_monitorRootDirectory.js +28 -0
  112. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_watchTree.js +20 -0
  113. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/package.json +45 -0
  114. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/test/test.js +243 -0
  115. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/CHANGELOG.md +81 -0
  116. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/LICENSE +177 -0
  117. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/Makefile +11 -0
  118. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/README.md +245 -0
  119. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/binding.gyp +14 -0
  120. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Makefile +355 -0
  121. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/linker.lock +0 -0
  122. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/obj.target/validation/src/validation.o +0 -0
  123. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/obj.target/xor/src/xor.o +0 -0
  124. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/validation.node +0 -0
  125. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/xor.node +0 -0
  126. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/binding.Makefile +6 -0
  127. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/config.gypi +115 -0
  128. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/gyp-mac-tool +512 -0
  129. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/validation.target.mk +154 -0
  130. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/xor.target.mk +154 -0
  131. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/index.js +1 -0
  132. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/install.js +31 -0
  133. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Constants.js +23 -0
  134. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Deprecation.js +38 -0
  135. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Validation.fallback.js +12 -0
  136. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Validation.js +18 -0
  137. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketClient.js +359 -0
  138. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketConnection.js +717 -0
  139. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketFrame.js +282 -0
  140. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRequest.js +478 -0
  141. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRouter.js +154 -0
  142. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRouterRequest.js +59 -0
  143. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketServer.js +216 -0
  144. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/utils.js +7 -0
  145. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/websocket.js +11 -0
  146. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/xor.fallback.js +13 -0
  147. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/xor.js +18 -0
  148. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/package.json +43 -0
  149. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/src/validation.cc +144 -0
  150. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/src/xor.cpp +86 -0
  151. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/FastBufferList.js +192 -0
  152. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/node-ctype/LICENSE +18 -0
  153. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/node-ctype/ctio-faster.js +1126 -0
  154. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/package.json +25 -0
  155. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/browser_websocket.js +63 -0
  156. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/connection_test.js +57 -0
  157. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/logger_mock.js +15 -0
  158. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/session_test.js +194 -0
  159. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/server/flo_test.js +211 -0
  160. data/vendor/assets/javascripts/batman_rails_flo/package.json +15 -0
  161. data/vendor/assets/javascripts/batman_rails_flo/reload_event_handler.js.coffee +56 -0
  162. metadata +232 -0
@@ -0,0 +1,32 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var test = require('tap').test;
5
+
6
+ test('umask sync modes', function (t) {
7
+ t.plan(2);
8
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11
+
12
+ var file = '/tmp/' + [x,y,z].join('/');
13
+
14
+ try {
15
+ mkdirp.sync(file);
16
+ } catch (err) {
17
+ t.fail(err);
18
+ return t.end();
19
+ }
20
+
21
+ path.exists(file, function (ex) {
22
+ if (!ex) t.fail('file not created')
23
+ else fs.stat(file, function (err, stat) {
24
+ if (err) t.fail(err)
25
+ else {
26
+ t.equal(stat.mode & 0777, (0777 & (~process.umask())));
27
+ t.ok(stat.isDirectory(), 'target not a directory');
28
+ t.end();
29
+ }
30
+ });
31
+ });
32
+ });
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "coffee-script",
3
+ "description": "Unfancy JavaScript",
4
+ "keywords": [
5
+ "javascript",
6
+ "language",
7
+ "coffeescript",
8
+ "compiler"
9
+ ],
10
+ "author": {
11
+ "name": "Jeremy Ashkenas"
12
+ },
13
+ "version": "1.7.1",
14
+ "license": "MIT",
15
+ "engines": {
16
+ "node": ">=0.8.0"
17
+ },
18
+ "directories": {
19
+ "lib": "./lib/coffee-script"
20
+ },
21
+ "main": "./lib/coffee-script/coffee-script",
22
+ "bin": {
23
+ "coffee": "./bin/coffee",
24
+ "cake": "./bin/cake"
25
+ },
26
+ "scripts": {
27
+ "test": "node ./bin/cake test"
28
+ },
29
+ "homepage": "http://coffeescript.org",
30
+ "bugs": {
31
+ "url": "https://github.com/jashkenas/coffee-script/issues"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git://github.com/jashkenas/coffee-script.git"
36
+ },
37
+ "devDependencies": {
38
+ "uglify-js": "~2.2",
39
+ "jison": ">=0.2.0",
40
+ "highlight.js": "~8.0.0",
41
+ "underscore": "~1.5.2"
42
+ },
43
+ "dependencies": {
44
+ "mkdirp": "~0.3.5"
45
+ },
46
+ "readme": " {\n } } {\n { { } }\n } }{ {\n { }{ } } _____ __ __\n { }{ }{ { } / ____| / _|/ _|\n .- { { } { }} -. | | ___ | |_| |_ ___ ___\n ( { } { } { } } ) | | / _ \\| _| _/ _ \\/ _ \\\n |`-..________ ..-'| | |___| (_) | | | || __/ __/\n | | \\_____\\___/|_| |_| \\___|\\___|\n | ;--.\n | (__ \\ _____ _ _\n | | ) ) / ____| (_) | |\n | |/ / | (___ ___ _ __ _ _ __ | |_\n | ( / \\___ \\ / __| '__| | '_ \\| __|\n | |/ ____) | (__| | | | |_) | |_\n | | |_____/ \\___|_| |_| .__/ \\__|\n `-.._________..-' | |\n |_|\n\n\n CoffeeScript is a little language that compiles into JavaScript.\n\n If you have the Node Package Manager installed:\n npm install -g coffee-script\n (Leave off the -g if you don't wish to install globally.)\n\n Or, if you don't wish to use npm:\n sudo bin/cake install\n\n Execute a script:\n coffee /path/to/script.coffee\n\n Compile a script:\n coffee -c /path/to/script.coffee\n\n For documentation, usage, and examples, see:\n http://coffeescript.org/\n\n To suggest a feature, report a bug, or general discussion:\n http://github.com/jashkenas/coffee-script/issues/\n\n If you'd like to chat, drop by #coffeescript on Freenode IRC,\n or on webchat.freenode.net.\n\n The source repository:\n git://github.com/jashkenas/coffee-script.git\n\n Top 100 contributors are listed here:\n http://github.com/jashkenas/coffee-script/contributors\n",
47
+ "readmeFilename": "README",
48
+ "_id": "coffee-script@1.7.1",
49
+ "_from": "coffee-script@"
50
+ }
@@ -0,0 +1 @@
1
+ require('./lib/coffee-script/register');
@@ -0,0 +1,30 @@
1
+ BSD License
2
+
3
+ For "fb-flo" software
4
+
5
+ Copyright (c) 2014, Facebook, Inc. All rights reserved.
6
+
7
+ Redistribution and use in source and binary forms, with or without modification,
8
+ are permitted provided that the following conditions are met:
9
+
10
+ * Redistributions of source code must retain the above copyright notice, this
11
+ list of conditions and the following disclaimer.
12
+
13
+ * Redistributions in binary form must reproduce the above copyright notice,
14
+ this list of conditions and the following disclaimer in the documentation
15
+ and/or other materials provided with the distribution.
16
+
17
+ * Neither the name Facebook nor the names of its contributors may be used to
18
+ endorse or promote products derived from this software without specific
19
+ prior written permission.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
25
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
28
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,23 @@
1
+ Additional Grant of Patent Rights
2
+
3
+ "Software" means the "fb-flo" software distributed by Facebook, Inc.
4
+
5
+ Facebook hereby grants you a perpetual, worldwide, royalty-free, non-exclusive,
6
+ irrevocable (subject to the termination provision below) license under any
7
+ rights in any patent claims owned by Facebook, to make, have made, use, sell,
8
+ offer to sell, import, and otherwise transfer the Software. For avoidance of
9
+ doubt, no license is granted under Facebook’s rights in any patent claims that
10
+ are infringed by (i) modifications to the Software made by you or a third party,
11
+ or (ii) the Software in combination with any software or other technology
12
+ provided by you or a third party.
13
+
14
+ The license granted hereunder will terminate, automatically and without notice,
15
+ for anyone that makes any claim (including by filing any lawsuit, assertion or
16
+ other action) alleging (a) direct, indirect, or contributory infringement or
17
+ inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or
18
+ affiliates, whether or not such claim is related to the Software, (ii) by any
19
+ party if such claim arises in whole or in part from any software, product or
20
+ service of Facebook or any of its subsidiaries or affiliates, whether or not
21
+ such claim is related to the Software, or (iii) by any party relating to the
22
+ Software; or (b) that any right in any patent claim of Facebook is invalid or
23
+ unenforceable.
@@ -0,0 +1,124 @@
1
+ fb-flo
2
+ ---
3
+
4
+ fb-flo is a Chrome extension that lets you modify running apps without reloading. It's easy to integrate with your build system, dev environment, and can be used with your favorite editor.
5
+
6
+ ## Usage
7
+
8
+ fb-flo is made up of a server and client component. This will guide through configuring your server for your project and installing the Chrome extension.
9
+
10
+ ### 1. Configure fb-flo server
11
+
12
+ ```
13
+ $ npm install fb-flo
14
+ ```
15
+
16
+ fb-flo exports a single `fb-flo` function to start the server. Here is an example where you have your source JavaScript and CSS files in the root directory and your build step involves bundling both into a respective `bundle.js`, `bundle.css`.
17
+
18
+ ```js
19
+ var flo = require('fb-flo'),
20
+ path = require('path'),
21
+ fs = require('fs');
22
+
23
+ var server = flo(
24
+ sourceDirToWatch,
25
+ {
26
+ port: 8888,
27
+ host: 'localhost',
28
+ verbose: false,
29
+ glob: [
30
+ // All JS files in `sourceDirToWatch` and subdirectories
31
+ '**/*.js',
32
+ // All CSS files in `sourceDirToWatch` and subdirectories
33
+ '**/*.css'
34
+ ]
35
+ },
36
+ function resolver(filepath, callback) {
37
+ // 1. Call into your compiler / bundler.
38
+ // 2. Assuming that `bundle.js` is your output file, update `bundle.js`
39
+ // and `bundle.css` when a JS or CSS file changes.
40
+ callback({
41
+ resourceURL: 'bundle.js' + path.extname(filepath),
42
+ // any string-ish value is acceptable. i.e. strings, Buffers etc.
43
+ contents: fs.readFileSync(filepath)
44
+ });
45
+ }
46
+ );
47
+ ```
48
+
49
+ `flo` takes the following arguments.
50
+
51
+ * `sourceDirToWatch`: absolute or relative path to the directory to watch that contains the source code that will be built.
52
+ * `options` hash of options:
53
+ * `port` port to start the server on (defaults to 8888).
54
+ * `host` to listen on.
55
+ * `verbose` `true` or `false` value indicating if flo should be noisy.
56
+ * `glob` a glob string or array of globs to match against the files to watch.
57
+ * `useFilePolling` some platforms that do not support native file watching, you can force the file watcher to work in polling mode.
58
+ * `pollingInterval` if in polling mode (useFilePolling) then you can set the interval at which to poll for file changes.
59
+ * `resolver` a function to map between files and resources.
60
+
61
+ The resolver callback is called with two arguments:
62
+
63
+ * `filepath` path to the file that changed relative to the watched directory.
64
+ * `callback` called to update a resource file in the browser. Should be called with an object with the following properties:
65
+ * `resourceURL` used as the resource identifier in the browser.
66
+ * `contents` any string-ish value representing the source of the updated file. i.e. strings, Buffers etc.
67
+ * `reload` (optional) forces a full page reload. Use this if you're sure the changed code cannot be hotswapped.
68
+ * `match` (optional, defaults to: indexOf) identifies the matching function to be performed on the resource URL in the browser. Could be one of the following:
69
+ * `"equal"` test the updated resource `resourceURL` against existing browser resources using an equality check.
70
+ * `"indexOf"` use `String.prototype.indexOf` check
71
+ * `/regexp/` a regexp object to exec.
72
+
73
+ ### 2. Install the Chrome Extension
74
+
75
+ Grab the [fb-flo Chrome extension](https://chrome.google.com/webstore/detail/ahkfhobdidabddlalamkkiafpipdfchp). This will add a new tab in your Chrome DevTools called 'flo'.
76
+
77
+ ### 3. Activate fb-flo
78
+
79
+ To activate fb-flo from the browser:
80
+
81
+ * Open Chrome DevTools.
82
+ * Click on the new 'fb-flo' pane.
83
+ * Click on 'Activate for this site'
84
+
85
+ See screenshot:
86
+
87
+ ![](http://i.imgur.com/SamY32i.png)
88
+
89
+ ### Example
90
+
91
+ Say you have a Makefile program that builds your JavaScript and CSS into `build/build.js` and `build/build.css` respectively, this how you'd configure your fb-flo server:
92
+
93
+ ```js
94
+ var flo = require('fb-flo');
95
+ var fs = require('fs');
96
+ var exec = require('child_process').exec;
97
+
98
+ var server = flo('./lib/', {
99
+ port: 8888,
100
+ dir: './lib/',
101
+ glob: ['./lib/**/*.js', './lib/**/*.css']
102
+ }, resolver);
103
+
104
+ server.once('ready', function() {
105
+ console.log('Ready!');
106
+ });
107
+
108
+ function resolver(filepath, callback) {
109
+ exec('make', function (err) {
110
+ if (err) throw err;
111
+ if (filepath.match(/\.js$/)) {
112
+ callback({
113
+ resourceURL: 'build/build.js',
114
+ contents: fs.readFileSync('build/build.js').toString()
115
+ })
116
+ } else {
117
+ callback({
118
+ resourceURL: 'build/build.css',
119
+ contents: fs.readFileSync('build/build.css').toString()
120
+ })
121
+ }
122
+ });
123
+ }
124
+ ```
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ var flo = require('../');
4
+ var path = require('path');
5
+
6
+ var file = path.join(
7
+ process.cwd(),
8
+ process.argv[2] || 'flofile.js'
9
+ );
10
+
11
+ var config;
12
+ try {
13
+ config = require(file);
14
+ } catch (e) {
15
+ config = {};
16
+ }
17
+
18
+ config.options = config.options || {};
19
+
20
+ var f = flo(
21
+ config.options.dir || process.cwd(),
22
+ config.options,
23
+ config.resolver
24
+ );
25
+
26
+ f.once('ready', config.ready || function() {});
@@ -0,0 +1,57 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>flo configuration</title>
5
+ <link rel="stylesheet" href="style.css" />
6
+ </head>
7
+ <body>
8
+ <main>
9
+ <nav>
10
+ <ol>
11
+ <li data-tab="status-log" class="selected">Status &amp; Log</li>
12
+ <li data-tab="config">Configuration</li>
13
+ </ol>
14
+ </nav>
15
+ <section class="status-log tab selected">
16
+ <h1>Status</h1>
17
+ <div class="status">
18
+ <span class="indicator disabled"></span>
19
+ <span class="text"></span>
20
+ <button class="action enable hidden">Activate for this site</button>
21
+ <button class="action retry hidden">Try again</button>
22
+ </div>
23
+ <h1>Log&nbsp;&nbsp;<small><a class="report-bug" href="https://github.com/facebook/fb-flo/issues/new" target="_blank">Report a bug</a></small></h1>
24
+ <div class="log-box" contenteditable>
25
+
26
+ </div>
27
+ </section>
28
+ <section class="config tab">
29
+ <h1>Configure flo</h1>
30
+ <form>
31
+ <section>
32
+ <div class="hostnames-container">
33
+ <label for="hostnames">Sites</label>
34
+ <p class="desc">Sites to start flo for.</p>
35
+ <div class="hostnames-options">
36
+ <ol class="hostnames"></ol>
37
+ <button class="add">Add New Site</button>
38
+ </div>
39
+ <div class="hostname-form hidden">
40
+ <label>Add Site</label>
41
+ <div><input name="pattern" placeholder="* hostname pattern" title="Either the full string to match or a regexp in the form of /example\.com/gi." /></div>
42
+ <div><input name="server" placeholder="flo server hostname" /></div>
43
+ <div><input name="port" placeholder="flo server port" /> <button>Save</button></div>
44
+ </div>
45
+ </div>
46
+ <div class="port-container">
47
+ <label for="default-port">Default flo server port number:</label>
48
+ <p class="desc">The default port number your flo server would be listening on (you can set port number per site).</p>
49
+ <input name="default-port" />
50
+ </div>
51
+ </section>
52
+ </form>
53
+ </section>
54
+ </main>
55
+ <script src="configure.js"></script>
56
+ </body>
57
+ </html>
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Copyright (c) 2014, Facebook, Inc.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree. An additional grant
7
+ * of patent rights can be found in the PATENTS file in the same directory.
8
+ */
9
+
10
+ (function () {
11
+
12
+ /**
13
+ * Utils.
14
+ */
15
+
16
+ var $ = document.querySelector.bind(document);
17
+
18
+ function $$() {
19
+ var els = document.querySelectorAll.apply(document, arguments);
20
+ return [].slice.call(els);
21
+ }
22
+
23
+ function triggerEvent(type, data) {
24
+ var event = new Event('flo_' + type);
25
+ event.data = data;
26
+ window.dispatchEvent(event);
27
+ return event;
28
+ };
29
+
30
+ function listenToEvent(type, callback) {
31
+ window.addEventListener('flo_' + type, callback);
32
+ }
33
+
34
+ /**
35
+ * Navigation.
36
+ */
37
+
38
+ $('nav').onclick = function(e) {
39
+ if (e.target.nodeName !== 'LI') return;
40
+ $$('.selected').forEach(function(el) {
41
+ el.classList.remove('selected');
42
+ });
43
+ e.target.classList.add('selected');
44
+ var tabClass = e.target.getAttribute('data-tab');
45
+ var tabEl = $('.' + tabClass);
46
+ tabEl && tabEl.classList.add('selected');
47
+ };
48
+
49
+ /**
50
+ * Storage.
51
+ */
52
+
53
+ function save() {
54
+ var sites = $$('.hostnames .item span').map(function(el) {
55
+ return {
56
+ pattern: el.dataset.pattern,
57
+ server: el.dataset.server,
58
+ port: el.dataset.port
59
+ };
60
+ });
61
+ var port = $('input[name="default-port"').value.trim();
62
+ triggerEvent('config_changed',{
63
+ port: port,
64
+ sites: sites
65
+ });
66
+ }
67
+
68
+ function load(config) {
69
+ $('.hostnames').innerHTML = '';
70
+ config.sites.forEach(function(site) {
71
+ $('.hostnames').appendChild(createHostnameOption(site));
72
+ });
73
+ $('input[name="default-port"]').value = config.port;
74
+ }
75
+
76
+ /**
77
+ * Templates.
78
+ */
79
+
80
+ function createHostnameOption(item) {
81
+ var option = document.createElement('li');
82
+ var text = document.createElement('span');
83
+ var remove = document.createElement('a');
84
+ remove.textContent = 'x';
85
+ remove.classList.add('remove');
86
+ text.textContent = item.pattern;
87
+ text.dataset.pattern = item.pattern;
88
+ text.dataset.port = item.port;
89
+ text.dataset.server = item.server;
90
+ option.appendChild(text);
91
+ option.appendChild(remove);
92
+ option.classList.add('item');
93
+ return option;
94
+ }
95
+
96
+ function createLogItem(level, str) {
97
+ var div = document.createElement('div');
98
+ div.classList.add('loglevel-' + level);
99
+ div.textContent = str;
100
+ return div;
101
+ }
102
+
103
+ function showHostnameForm(callback) {
104
+ var form = $('.hostname-form');
105
+ form.classList.remove('hidden');
106
+ form.querySelector('button').onclick = function() {
107
+ var pattern = form.querySelector('[name=pattern]').value.trim();
108
+ if (!pattern) {
109
+ form.querySelector('[name=pattern]').classList.add('red');
110
+ return;
111
+ }
112
+
113
+ var item = {
114
+ pattern: pattern,
115
+ server: form.querySelector('[name=server]').value.trim(),
116
+ port: form.querySelector('[name=port]').value.trim()
117
+ };
118
+
119
+ this.onclick = null;
120
+ form.classList.add('hidden');
121
+ $$('.hostname-form input').forEach(function(input) {
122
+ input.classList.remove('red');
123
+ input.value = '';
124
+ });
125
+
126
+ callback(item);
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Event handlers.
132
+ */
133
+
134
+ $('form').onsubmit = function (e) {
135
+ e.preventDefault();
136
+ };
137
+
138
+ $('button.add').onclick = function () {
139
+ showHostnameForm(function(item) {
140
+ var option = createHostnameOption(item);
141
+ $('.hostnames').appendChild(option);
142
+ save();
143
+ });
144
+ };
145
+
146
+ $('.hostnames').onclick = function (e) {
147
+ if (e.target.classList.contains('remove')) {
148
+ e.target.parentNode.parentNode.removeChild(e.target.parentNode);
149
+ save();
150
+ }
151
+ };
152
+
153
+ $('form').onchange = save;
154
+
155
+ var prevStatus = 'disabled';
156
+ listenToEvent('status_change', function(e) {
157
+ var data = e.data;
158
+ var indicator = $('.status .indicator')
159
+ indicator.classList.remove(prevStatus);
160
+ indicator.classList.add(data.type);
161
+ prevStatus = data.type;
162
+ $('.status .text').textContent = data.text;
163
+ $$('.status .action').forEach(function(el) {
164
+ el.classList.add('hidden');
165
+ });
166
+ if (data.action) {
167
+ $('.status .' + data.action).classList.remove('hidden');
168
+ }
169
+ });
170
+
171
+ $('.action.retry').onclick = function() {
172
+ triggerEvent('retry');
173
+ };
174
+
175
+ $('.action.enable').onclick = function() {
176
+ triggerEvent('enable_for_host');
177
+ };
178
+
179
+ listenToEvent('load', function(e) {
180
+ load(e.data);
181
+ });
182
+
183
+ var logs = '';
184
+
185
+ listenToEvent('log', function(e) {
186
+ var level = e.data[0];
187
+ var args = e.data[1];
188
+ var message = args.map(function(a) {
189
+ return a.toString()
190
+ }).join(' ');
191
+
192
+ var item = createLogItem(
193
+ level,
194
+ message
195
+ );
196
+ var box = $('.log-box');
197
+ box.appendChild(item);
198
+ box.scrollTop = box.scrollHeight;
199
+
200
+ logs += '\n' + '[' + level + ']' + message;
201
+ var report = $('.report-bug');
202
+ report.search = 'title=' + 'Report from extension'
203
+ + '&body=```' + logs + '\n```';
204
+ });
205
+ })();