batman-rails-flo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ })();