code_sync 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. data/.rvmrc +1 -0
  2. data/CNAME +1 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +117 -0
  5. data/LICENSE.md +22 -0
  6. data/ROADMAP.md +20 -0
  7. data/TODO.md +14 -0
  8. data/bin/codesync +11 -0
  9. data/code_sync.gemspec +30 -0
  10. data/config/routes.rb +26 -0
  11. data/lib/assets/javascripts/canvas.coffee +12 -0
  12. data/lib/assets/javascripts/canvas/editors.coffee +48 -0
  13. data/lib/assets/javascripts/canvas/index.coffee +15 -0
  14. data/lib/assets/javascripts/canvas/layer_controller.coffee +47 -0
  15. data/lib/assets/javascripts/code_sync.coffee +3 -0
  16. data/lib/assets/javascripts/code_sync/backends/gist.coffee +78 -0
  17. data/lib/assets/javascripts/code_sync/client/index.coffee +104 -0
  18. data/lib/assets/javascripts/code_sync/client/util.coffee +61 -0
  19. data/lib/assets/javascripts/code_sync/codemirror.coffee +12 -0
  20. data/lib/assets/javascripts/code_sync/config.js.coffee.erb +38 -0
  21. data/lib/assets/javascripts/code_sync/console/index.coffee +54 -0
  22. data/lib/assets/javascripts/code_sync/console/templates/console.jst.skim +10 -0
  23. data/lib/assets/javascripts/code_sync/dependencies.coffee +6 -0
  24. data/lib/assets/javascripts/code_sync/editor/advanced.coffee +0 -0
  25. data/lib/assets/javascripts/code_sync/editor/datasources/document.coffee +212 -0
  26. data/lib/assets/javascripts/code_sync/editor/datasources/gist_loader.coffee +7 -0
  27. data/lib/assets/javascripts/code_sync/editor/datasources/modes.coffee +117 -0
  28. data/lib/assets/javascripts/code_sync/editor/datasources/project_assets.coffee +14 -0
  29. data/lib/assets/javascripts/code_sync/editor/index.coffee +415 -0
  30. data/lib/assets/javascripts/code_sync/editor/plugins/asset_selector.coffee +106 -0
  31. data/lib/assets/javascripts/code_sync/editor/plugins/color_picker.coffee +83 -0
  32. data/lib/assets/javascripts/code_sync/editor/plugins/document_manager.coffee +55 -0
  33. data/lib/assets/javascripts/code_sync/editor/plugins/document_tabs.coffee +178 -0
  34. data/lib/assets/javascripts/code_sync/editor/plugins/element_sync.coffee +111 -0
  35. data/lib/assets/javascripts/code_sync/editor/plugins/keymap_selector.coffee +44 -0
  36. data/lib/assets/javascripts/code_sync/editor/plugins/mode_selector.coffee +53 -0
  37. data/lib/assets/javascripts/code_sync/editor/plugins/name_input.coffee +44 -0
  38. data/lib/assets/javascripts/code_sync/editor/plugins/preferences.coffee +71 -0
  39. data/lib/assets/javascripts/code_sync/editor/templates/asset_editor.jst.skim +2 -0
  40. data/lib/assets/javascripts/code_sync/editor/templates/asset_selector.jst.skim +5 -0
  41. data/lib/assets/javascripts/code_sync/editor/templates/document_manager_tab.jst.skim +15 -0
  42. data/lib/assets/javascripts/code_sync/editor/templates/element_sync.jst.skim +19 -0
  43. data/lib/assets/javascripts/code_sync/editor/templates/preferences_panel.jst.skim +38 -0
  44. data/lib/assets/javascripts/code_sync/editor/views/asset_selector.coffee +106 -0
  45. data/lib/assets/javascripts/code_sync/editor/views/color_picker.coffee +76 -0
  46. data/lib/assets/javascripts/code_sync/editor/views/document_manager.coffee +176 -0
  47. data/lib/assets/javascripts/code_sync/editor/views/keymap_selector.coffee +37 -0
  48. data/lib/assets/javascripts/code_sync/editor/views/mode_selector.coffee +47 -0
  49. data/lib/assets/javascripts/code_sync/editor/views/name_input.coffee +44 -0
  50. data/lib/assets/javascripts/code_sync/editor/views/preferences.coffee +71 -0
  51. data/lib/assets/javascripts/code_sync/index.coffee +4 -0
  52. data/lib/assets/javascripts/code_sync/reloader.coffee +2 -0
  53. data/lib/assets/javascripts/code_sync_basic.coffee +1 -0
  54. data/lib/assets/javascripts/demos.coffee +48 -0
  55. data/lib/assets/javascripts/demos/default-content.coffee +72 -0
  56. data/lib/assets/javascripts/demos/layout_selector.coffee +19 -0
  57. data/lib/assets/javascripts/demos/tour.coffee +70 -0
  58. data/lib/assets/javascripts/demos/tour.jst.skim +29 -0
  59. data/lib/assets/javascripts/marketing.coffee +0 -0
  60. data/lib/assets/javascripts/vendor/.DS_Store +0 -0
  61. data/lib/assets/javascripts/vendor/backbone-events.js +160 -0
  62. data/lib/assets/javascripts/vendor/backbone-min.js +4 -0
  63. data/lib/assets/javascripts/vendor/codemirror-coffeescript.js +346 -0
  64. data/lib/assets/javascripts/vendor/codemirror-css.js +570 -0
  65. data/lib/assets/javascripts/vendor/codemirror-haml.js +153 -0
  66. data/lib/assets/javascripts/vendor/codemirror-htmlmixed.js +104 -0
  67. data/lib/assets/javascripts/vendor/codemirror-javascript.js +468 -0
  68. data/lib/assets/javascripts/vendor/codemirror-markdown.js +526 -0
  69. data/lib/assets/javascripts/vendor/codemirror-ruby.js +194 -0
  70. data/lib/assets/javascripts/vendor/codemirror-sass.js +330 -0
  71. data/lib/assets/javascripts/vendor/codemirror-skim.js +330 -0
  72. data/lib/assets/javascripts/vendor/codemirror-vim.js +3159 -0
  73. data/lib/assets/javascripts/vendor/codemirror-xml.js +328 -0
  74. data/lib/assets/javascripts/vendor/console.js +339 -0
  75. data/lib/assets/javascripts/vendor/gisted.js +27 -0
  76. data/lib/assets/javascripts/vendor/jquery-ui-resize-drag.min.js +6 -0
  77. data/lib/assets/javascripts/vendor/jquery.js +5 -0
  78. data/lib/assets/javascripts/vendor/keylauncher.js +4 -0
  79. data/lib/assets/javascripts/vendor/keymaster.min.js +4 -0
  80. data/lib/assets/javascripts/vendor/spectrum.js +1868 -0
  81. data/lib/assets/javascripts/vendor/underscore-min.js +1 -0
  82. data/lib/assets/javascripts/vendor/underscore.string.min.js +1 -0
  83. data/lib/assets/javascripts/vendor/vendored_codemirror.js +5558 -0
  84. data/lib/assets/javascripts/vendor/zepto.js +2 -0
  85. data/lib/assets/stylesheets/canvas.css.scss +101 -0
  86. data/lib/assets/stylesheets/code_sync.css.scss +4 -0
  87. data/lib/assets/stylesheets/code_sync/codemirror.css +7 -0
  88. data/lib/assets/stylesheets/code_sync/console.css +86 -0
  89. data/lib/assets/stylesheets/code_sync/editor/asset-name-input.css.scss +12 -0
  90. data/lib/assets/stylesheets/code_sync/editor/asset-selector.css.scss +58 -0
  91. data/lib/assets/stylesheets/code_sync/editor/codesync-color-picker.css.sass +5 -0
  92. data/lib/assets/stylesheets/code_sync/editor/document-tabs.css.scss +61 -0
  93. data/lib/assets/stylesheets/code_sync/editor/element-sync.css.scss +72 -0
  94. data/lib/assets/stylesheets/code_sync/editor/mode-selector.css.scss +0 -0
  95. data/lib/assets/stylesheets/code_sync/editor/preferences-panel.css.scss +26 -0
  96. data/lib/assets/stylesheets/code_sync/index.css.scss +141 -0
  97. data/lib/assets/stylesheets/demos.css.scss +96 -0
  98. data/lib/assets/stylesheets/marketing.css.sass +46 -0
  99. data/lib/assets/stylesheets/marketing/syntax.css.scss +1 -0
  100. data/lib/assets/stylesheets/vendor/animate.css +1 -0
  101. data/lib/assets/stylesheets/vendor/codemirror-ambiance.css +75 -0
  102. data/lib/assets/stylesheets/vendor/codemirror-lesserdark.css +44 -0
  103. data/lib/assets/stylesheets/vendor/codemirror-monokai.css +28 -0
  104. data/lib/assets/stylesheets/vendor/codemirror-xq-light.css +43 -0
  105. data/lib/assets/stylesheets/vendor/grid-layout.css +1406 -0
  106. data/lib/assets/stylesheets/vendor/spectrum.css +481 -0
  107. data/lib/assets/stylesheets/vendor/vendored_codemirror.css +246 -0
  108. data/lib/code_sync.rb +41 -0
  109. data/lib/code_sync/cli.rb +73 -0
  110. data/lib/code_sync/manager.rb +238 -0
  111. data/lib/code_sync/processors.rb +18 -0
  112. data/lib/code_sync/processors/basic.rb +9 -0
  113. data/lib/code_sync/processors/jst_processor.rb +17 -0
  114. data/lib/code_sync/pry_console.rb +132 -0
  115. data/lib/code_sync/rails.rb +7 -0
  116. data/lib/code_sync/rails/engine.rb +12 -0
  117. data/lib/code_sync/server.rb +225 -0
  118. data/lib/code_sync/sprockets_adapter.rb +145 -0
  119. data/lib/code_sync/temp_asset.rb +20 -0
  120. data/lib/code_sync/version.rb +3 -0
  121. data/lib/middleman_extension.rb +43 -0
  122. data/readme.md +26 -0
  123. data/site/.gitignore +14 -0
  124. data/site/Gemfile +13 -0
  125. data/site/Gemfile.lock +183 -0
  126. data/site/config.rb +26 -0
  127. data/site/source/canvas.html.slim +21 -0
  128. data/site/source/codepen-style-demo.html.slim +21 -0
  129. data/site/source/demo.html.slim +30 -0
  130. data/site/source/index.html.slim +128 -0
  131. data/site/source/layouts/layout.slim +18 -0
  132. data/site/source/samples/_client.html.md +13 -0
  133. data/site/source/samples/_editor.html.md +19 -0
  134. data/site/source/samples/_hooks.html.md +8 -0
  135. data/site/source/samples/_middleman.html.md +7 -0
  136. data/site/source/samples/_rails.html.md +8 -0
  137. data/site/source/samples/_standalone.html.md +36 -0
  138. data/spec/lib/code_sync/sprockets_adapter_spec.rb +44 -0
  139. data/spec/spec_helper.rb +21 -0
  140. data/spec/support/.DS_Store +0 -0
  141. data/spec/support/dummy_middleman/.gitignore +14 -0
  142. data/spec/support/dummy_middleman/Gemfile +5 -0
  143. data/spec/support/dummy_middleman/Gemfile.lock +100 -0
  144. data/spec/support/dummy_middleman/config.rb +77 -0
  145. data/spec/support/dummy_middleman/source/images/background.png +0 -0
  146. data/spec/support/dummy_middleman/source/images/middleman.png +0 -0
  147. data/spec/support/dummy_middleman/source/index.html.erb +10 -0
  148. data/spec/support/dummy_middleman/source/javascripts/all.js +1 -0
  149. data/spec/support/dummy_middleman/source/layouts/layout.erb +19 -0
  150. data/spec/support/dummy_middleman/source/stylesheets/all.css +55 -0
  151. data/spec/support/dummy_middleman/source/stylesheets/normalize.css +375 -0
  152. data/spec/support/dummy_rails/.gitignore +15 -0
  153. data/spec/support/dummy_rails/Gemfile +38 -0
  154. data/spec/support/dummy_rails/Gemfile.lock +112 -0
  155. data/spec/support/dummy_rails/README.rdoc +261 -0
  156. data/spec/support/dummy_rails/Rakefile +7 -0
  157. data/spec/support/dummy_rails/app/assets/images/rails.png +0 -0
  158. data/spec/support/dummy_rails/app/assets/javascripts/application.js +15 -0
  159. data/spec/support/dummy_rails/app/assets/stylesheets/application.css +13 -0
  160. data/spec/support/dummy_rails/app/controllers/application_controller.rb +3 -0
  161. data/spec/support/dummy_rails/app/helpers/application_helper.rb +2 -0
  162. data/spec/support/dummy_rails/app/mailers/.gitkeep +0 -0
  163. data/spec/support/dummy_rails/app/models/.gitkeep +0 -0
  164. data/spec/support/dummy_rails/app/views/layouts/application.html.erb +14 -0
  165. data/spec/support/dummy_rails/config.ru +4 -0
  166. data/spec/support/dummy_rails/config/application.rb +62 -0
  167. data/spec/support/dummy_rails/config/boot.rb +6 -0
  168. data/spec/support/dummy_rails/config/database.yml +25 -0
  169. data/spec/support/dummy_rails/config/environment.rb +5 -0
  170. data/spec/support/dummy_rails/config/environments/development.rb +37 -0
  171. data/spec/support/dummy_rails/config/environments/production.rb +67 -0
  172. data/spec/support/dummy_rails/config/environments/test.rb +37 -0
  173. data/spec/support/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  174. data/spec/support/dummy_rails/config/initializers/inflections.rb +15 -0
  175. data/spec/support/dummy_rails/config/initializers/mime_types.rb +5 -0
  176. data/spec/support/dummy_rails/config/initializers/secret_token.rb +7 -0
  177. data/spec/support/dummy_rails/config/initializers/session_store.rb +8 -0
  178. data/spec/support/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  179. data/spec/support/dummy_rails/config/locales/en.yml +5 -0
  180. data/spec/support/dummy_rails/config/routes.rb +58 -0
  181. data/spec/support/dummy_rails/db/seeds.rb +7 -0
  182. data/spec/support/dummy_rails/doc/README_FOR_APP +2 -0
  183. data/spec/support/dummy_rails/lib/assets/.gitkeep +0 -0
  184. data/spec/support/dummy_rails/lib/tasks/.gitkeep +0 -0
  185. data/spec/support/dummy_rails/log/.gitkeep +0 -0
  186. data/spec/support/dummy_rails/public/404.html +26 -0
  187. data/spec/support/dummy_rails/public/422.html +26 -0
  188. data/spec/support/dummy_rails/public/500.html +25 -0
  189. data/spec/support/dummy_rails/public/favicon.ico +0 -0
  190. data/spec/support/dummy_rails/public/index.html +241 -0
  191. data/spec/support/dummy_rails/public/robots.txt +5 -0
  192. data/spec/support/dummy_rails/script/rails +6 -0
  193. data/spec/support/dummy_rails/test/fixtures/.gitkeep +0 -0
  194. data/spec/support/dummy_rails/test/functional/.gitkeep +0 -0
  195. data/spec/support/dummy_rails/test/integration/.gitkeep +0 -0
  196. data/spec/support/dummy_rails/test/performance/browsing_test.rb +12 -0
  197. data/spec/support/dummy_rails/test/test_helper.rb +13 -0
  198. data/spec/support/dummy_rails/test/unit/.gitkeep +0 -0
  199. data/spec/support/dummy_rails/vendor/assets/javascripts/.gitkeep +0 -0
  200. data/spec/support/dummy_rails/vendor/assets/stylesheets/.gitkeep +0 -0
  201. data/spec/support/dummy_rails/vendor/plugins/.gitkeep +0 -0
  202. data/spec/support/dummy_static/.DS_Store +0 -0
  203. data/spec/support/dummy_static/app/.DS_Store +0 -0
  204. data/spec/support/dummy_static/app/assets/.DS_Store +0 -0
  205. data/spec/support/dummy_static/app/assets/javascripts/manifest.coffee +4 -0
  206. data/spec/support/dummy_static/app/assets/javascripts/spec_application_javascript.coffee +4 -0
  207. data/spec/support/dummy_static/app/assets/stylesheets/spec_application_stylesheet.css.scss +5 -0
  208. data/spec/support/dummy_static/lib/assets/javascripts/spec_library_javascript.coffee +3 -0
  209. data/spec/support/dummy_static/lib/assets/stylesheets/spec_library_stylesheet.css.scss +5 -0
  210. data/spec/support/dummy_static/vendor/assets/javascripts/spec_vendor_javascript.js +5 -0
  211. data/spec/support/dummy_static/vendor/assets/stylesheets/spec_vendor_stylesheets.css +3 -0
  212. data/vendor/assets/stylesheets/code_sync.css +1 -0
  213. metadata +492 -0
@@ -0,0 +1,20 @@
1
+ require 'sprockets'
2
+
3
+ module CodeSync
4
+ class TempAsset < Sprockets::BundledAsset
5
+ def self.create_from content, options={}
6
+ environment, filename, extension = options.values_at(:env, :filename, :extension)
7
+
8
+ filename = filename || "compiled"
9
+
10
+ tempfile = Tempfile.new([filename, extension])
11
+
12
+ tempfile.write(content) && tempfile.rewind
13
+
14
+ pathname = Pathname.new(tempfile.path)
15
+ logical_path = File.basename(pathname)
16
+
17
+ new(environment, logical_path, pathname)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ module CodeSync
2
+ Version = "0.6.7"
3
+ end
@@ -0,0 +1,43 @@
1
+ if defined?(Middleman)
2
+ require "middleman-core"
3
+ require "middleman-more"
4
+
5
+
6
+ module CodeSync::MiddlemanExtension
7
+ class << self
8
+ def registered app, options_hash={}
9
+
10
+ app.after_configuration do
11
+ unless build?
12
+ pid = fork do
13
+ source = begin
14
+ File.join(app.root, app.source)
15
+ rescue
16
+ File.join(Dir.pwd(),'source')
17
+ end
18
+
19
+ CodeSync::Manager.start(root: source,
20
+ sprockets: (sprockets rescue nil),
21
+ forbid_saving: (options_hash[:forbid_saving] == true),
22
+ parent:'middleman'
23
+ )
24
+ end
25
+ end
26
+ end
27
+
28
+ trap("SIGINT") do
29
+ Process.kill(9,pid) rescue nil
30
+ end
31
+ end
32
+ end
33
+
34
+ module InstanceMethods
35
+
36
+ end
37
+ end
38
+
39
+ Middleman::Extensions.register(:code_sync) do
40
+ require 'code_sync'
41
+ CodeSync::MiddlemanExtension
42
+ end
43
+ end
data/readme.md ADDED
@@ -0,0 +1,26 @@
1
+ CodeSync is a utility which live reloads asset pipeline assets in their running browser sessions, and an
2
+ in-browser IDE which allows you to edit your pre-compiled assets (coffeescript, sass, etc) in the browser
3
+ and save them to disk.
4
+
5
+ ### Using with Rails
6
+ ```
7
+ # config/initializers/code_sync.rb
8
+ if Rails.env.development?
9
+ CodeSync::Manager.start(forked: true, sprockets: Rails.application.assets )
10
+ end
11
+ ```
12
+
13
+ ```ruby
14
+ # Gemfile
15
+ gem 'code_sync', git: "git@github.com:datapimp/code_sync.git"
16
+ ```
17
+
18
+ ```coffeescript
19
+ # asset manifest
20
+ #= require 'code_sync'
21
+ #= require_self
22
+
23
+ window.codeSyncClient = new CodeSync.Client()
24
+ ```
25
+
26
+ Now when you change assets in the asset pipeline, they will be applied to the browser without refreshing.
data/site/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore the build directory
11
+ /build
12
+
13
+ # Ignore Sass' cache
14
+ /.sass-cache
data/site/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ # If you have OpenSSL installed, we recommend updating
2
+ # the following line to use "https"
3
+ source 'http://rubygems.org'
4
+
5
+ gem "middleman", "~>3.0.13"
6
+ gem "middleman-sprockets"
7
+ gem "middleman-syntax", '1.1.1'
8
+ gem "redcarpet"
9
+
10
+ gem "slim"
11
+ gem "skim"
12
+ gem "sass"
13
+ gem "code_sync", path: File.join("..")
data/site/Gemfile.lock ADDED
@@ -0,0 +1,183 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ code_sync (0.6.5)
5
+ faye
6
+ listen
7
+ pry
8
+ rack-webconsole-pry
9
+ rb-fsevent (~> 0.9)
10
+ skim
11
+ slim
12
+ sprockets
13
+ thin
14
+ thor
15
+
16
+ GEM
17
+ remote: http://rubygems.org/
18
+ specs:
19
+ activesupport (3.2.13)
20
+ i18n (= 0.6.1)
21
+ multi_json (~> 1.0)
22
+ addressable (2.3.4)
23
+ chunky_png (1.2.8)
24
+ coderay (1.0.9)
25
+ coffee-script (2.2.0)
26
+ coffee-script-source
27
+ execjs
28
+ coffee-script-source (1.3.3)
29
+ compass (0.12.2)
30
+ chunky_png (~> 1.2)
31
+ fssm (>= 0.2.7)
32
+ sass (~> 3.1)
33
+ cookiejar (0.3.0)
34
+ daemons (1.1.9)
35
+ em-http-request (1.0.3)
36
+ addressable (>= 2.2.3)
37
+ cookiejar
38
+ em-socksify
39
+ eventmachine (>= 1.0.0.beta.4)
40
+ http_parser.rb (>= 0.5.3)
41
+ em-socksify (0.2.1)
42
+ eventmachine (>= 1.0.0.beta.4)
43
+ eventmachine (1.0.3)
44
+ execjs (1.4.0)
45
+ multi_json (~> 1.0)
46
+ faye (0.8.9)
47
+ cookiejar (>= 0.3.0)
48
+ em-http-request (>= 0.3.0)
49
+ eventmachine (>= 0.12.0)
50
+ faye-websocket (>= 0.4.0)
51
+ rack (>= 1.0.0)
52
+ yajl-ruby (>= 1.0.0)
53
+ faye-websocket (0.6.1)
54
+ eventmachine (>= 0.12.0)
55
+ websocket-driver (>= 0.2.0)
56
+ fssm (0.2.10)
57
+ haml (4.0.2)
58
+ tilt
59
+ hike (1.2.2)
60
+ http_parser.rb (0.5.3)
61
+ http_router (0.10.2)
62
+ rack (>= 1.0.0)
63
+ url_mount (~> 0.2.1)
64
+ i18n (0.6.1)
65
+ json (1.8.0)
66
+ listen (0.7.3)
67
+ maruku (0.6.1)
68
+ syntax (>= 1.0.0)
69
+ method_source (0.8.1)
70
+ middleman (3.0.13)
71
+ middleman-core (= 3.0.13)
72
+ middleman-more (= 3.0.13)
73
+ middleman-sprockets (~> 3.0.8)
74
+ middleman-core (3.0.13)
75
+ activesupport (~> 3.2.6)
76
+ bundler (~> 1.1)
77
+ listen (~> 0.7.3)
78
+ rack (~> 1.4.1)
79
+ rack-test (~> 0.6.1)
80
+ rb-fsevent (~> 0.9.3)
81
+ thor (~> 0.15.4)
82
+ tilt (~> 1.3.6)
83
+ middleman-more (3.0.13)
84
+ coffee-script (~> 2.2.0)
85
+ coffee-script-source (~> 1.3.3)
86
+ compass (>= 0.12.2)
87
+ execjs (~> 1.4.0)
88
+ haml (>= 3.1.6)
89
+ i18n (~> 0.6.0, < 0.6.2)
90
+ maruku (~> 0.6.0)
91
+ middleman-core (= 3.0.13)
92
+ padrino-helpers (= 0.10.7)
93
+ sass (>= 3.1.20)
94
+ uglifier (~> 1.2.6)
95
+ middleman-sprockets (3.0.11)
96
+ middleman-more (>= 3.0.11)
97
+ sprockets (~> 2.1)
98
+ sprockets-sass (~> 0.9.1)
99
+ middleman-syntax (1.1.1)
100
+ middleman-core (~> 3.0)
101
+ pygments.rb (~> 0.3)
102
+ multi_json (1.7.3)
103
+ padrino-core (0.10.7)
104
+ activesupport (~> 3.2.0)
105
+ http_router (~> 0.10.2)
106
+ sinatra (~> 1.3.1)
107
+ thor (~> 0.15.2)
108
+ tilt (~> 1.3.0)
109
+ padrino-helpers (0.10.7)
110
+ i18n (~> 0.6)
111
+ padrino-core (= 0.10.7)
112
+ posix-spawn (0.3.6)
113
+ pry (0.9.12.2)
114
+ coderay (~> 1.0.5)
115
+ method_source (~> 0.8)
116
+ slop (~> 3.4)
117
+ pygments.rb (0.5.0)
118
+ posix-spawn (~> 0.3.6)
119
+ yajl-ruby (~> 1.1.0)
120
+ rack (1.4.5)
121
+ rack-protection (1.5.0)
122
+ rack
123
+ rack-test (0.6.2)
124
+ rack (>= 1.0)
125
+ rack-webconsole-pry (0.1.9)
126
+ json
127
+ multi_json (>= 1.0.3)
128
+ pry
129
+ rack
130
+ rb-fsevent (0.9.3)
131
+ redcarpet (2.2.2)
132
+ sass (3.2.8)
133
+ sinatra (1.3.6)
134
+ rack (~> 1.4)
135
+ rack-protection (~> 1.3)
136
+ tilt (~> 1.3, >= 1.3.3)
137
+ skim (0.8.6)
138
+ coffee-script
139
+ coffee-script-source (>= 1.2.0)
140
+ multi_json
141
+ slim (<= 1.2.2)
142
+ sprockets
143
+ temple (<= 0.4.1)
144
+ slim (1.2.2)
145
+ temple (~> 0.4.0)
146
+ tilt (~> 1.3.3)
147
+ slop (3.4.5)
148
+ sprockets (2.9.3)
149
+ hike (~> 1.2)
150
+ multi_json (~> 1.0)
151
+ rack (~> 1.0)
152
+ tilt (~> 1.1, != 1.3.0)
153
+ sprockets-sass (0.9.1)
154
+ sprockets (~> 2.0)
155
+ tilt (~> 1.1)
156
+ syntax (1.0.0)
157
+ temple (0.4.1)
158
+ thin (1.5.1)
159
+ daemons (>= 1.0.9)
160
+ eventmachine (>= 0.12.6)
161
+ rack (>= 1.0.0)
162
+ thor (0.15.4)
163
+ tilt (1.3.7)
164
+ uglifier (1.2.7)
165
+ execjs (>= 0.3.0)
166
+ multi_json (~> 1.3)
167
+ url_mount (0.2.1)
168
+ rack
169
+ websocket-driver (0.2.0)
170
+ yajl-ruby (1.1.0)
171
+
172
+ PLATFORMS
173
+ ruby
174
+
175
+ DEPENDENCIES
176
+ code_sync!
177
+ middleman (~> 3.0.13)
178
+ middleman-sprockets
179
+ middleman-syntax (= 1.1.1)
180
+ redcarpet
181
+ sass
182
+ skim
183
+ slim
data/site/config.rb ADDED
@@ -0,0 +1,26 @@
1
+ set :css_dir, 'stylesheets'
2
+ set :js_dir, 'javascripts'
3
+ set :images_dir, 'images'
4
+
5
+ activate :sprockets
6
+ activate :code_sync
7
+
8
+ Skim::Engine.default_options[:use_asset] = true
9
+
10
+ set :markdown_engine, :redcarpet
11
+ set :markdown, :fenced_code_blocks => true, :smartypants => true
12
+ activate :syntax, :cssclass => "codehilite"
13
+
14
+ activate :directory_indexes
15
+
16
+ configure :build do
17
+ activate :minify_css
18
+ activate :minify_javascript
19
+ activate :relative_assets
20
+ end
21
+
22
+ after_build do
23
+ `cp build/javascripts/code_sync.min.js ../vendor/assets/javascripts`
24
+ `cp build/javascripts/code_sync_basic.min.js ../vendor/assets/javascripts`
25
+ `cp build/stylesheets/code_sync.css ../vendor/assets/stylesheets`
26
+ end
@@ -0,0 +1,21 @@
1
+ #canvas-application.layer-controller
2
+ #underneath.bottom.layer
3
+ #front-end-editors-wrapper
4
+ #panel-1.panel
5
+ #panel-2.panel
6
+ #panel-3.panel
7
+ #backend-console-wrapper
8
+
9
+ #canvas.top.layer
10
+ .handle.vertical-handle
11
+ .handle.horizontal-handle
12
+
13
+ #canvas-inner
14
+
15
+ javascript:
16
+ window.codeSyncClient = new CodeSync.Client()
17
+
18
+ - content_for(:head) do
19
+ == stylesheet_link_tag 'vendor/animate', 'canvas'
20
+
21
+ == javascript_include_tag 'canvas'
@@ -0,0 +1,21 @@
1
+ javascript:
2
+ window.coffeescriptDefault = "CodeSync.onScriptChange ||= (changeObject)->\n"
3
+ coffeescriptDefault = coffeescriptDefault + ' if changeObject.mode is "skim" and changeObject.name is "codesync"'
4
+ coffeescriptDefault = coffeescriptDefault + "\n" + ' $(".canvas-container").html JST["codesync"]()'
5
+
6
+ .demos-page
7
+ .editor-container data-layout="three"
8
+ .canvas-container
9
+
10
+ - if development?
11
+ javascript:
12
+ window.codeSyncClient = new CodeSync.Client()
13
+
14
+ javascript:
15
+ CodeSync.AssetEditor.setHotKey('ctrl+j', {position:"bottom"})
16
+
17
+ - content_for(:head) do
18
+ == stylesheet_link_tag 'demos', 'vendor/animate'
19
+
20
+ == javascript_include_tag 'demos'
21
+
@@ -0,0 +1,30 @@
1
+
2
+ javascript:
3
+ window.coffeescriptDefault = "CodeSync.onScriptChange ||= (changeObject)->\n"
4
+ coffeescriptDefault = coffeescriptDefault + ' if changeObject.mode is "skim" and changeObject.name is "codesync"'
5
+ coffeescriptDefault = coffeescriptDefault + "\n" + ' $(".canvas-container").html JST["codesync"]()'
6
+
7
+ .demos-page
8
+ .editor-container data-layout="three"
9
+ .canvas-container
10
+
11
+ - if development?
12
+ javascript:
13
+ window.codeSyncClient = new CodeSync.Client()
14
+
15
+ javascript:
16
+ window.enableGlobalEditor = function(){
17
+ CodeSync.AssetEditor.setHotKey('ctrl+j')
18
+
19
+ window.codeSyncEditor = new CodeSync.AssetEditor({
20
+ autoAppend: true,
21
+ renderHidden: true,
22
+ startMode: 'scss',
23
+ position: "bottom"
24
+ })
25
+ }
26
+
27
+ - content_for(:head) do
28
+ == stylesheet_link_tag 'demos', 'vendor/animate'
29
+
30
+ == javascript_include_tag 'demos'
@@ -0,0 +1,128 @@
1
+ .wrapper
2
+ header
3
+ h1 CodeSync
4
+ h2 Powerful live refresh and code editing tools for the Asset Pipeline
5
+
6
+ ul.links
7
+ li
8
+ a href="https://github.com/datapimp/code_sync" Source Code
9
+ li
10
+ a href="https://github.com/datapimp/code_sync/issues" Issues
11
+ li
12
+ | Version #{ CodeSync::Version }
13
+ li
14
+ | MIT License
15
+
16
+ section.marketing
17
+ p CodeSync is a utility that works anywhere the Sprockets gem works, with any language supported by Sprockets.
18
+ p CodeSync is similar to LiveReload, but works directly with the Asset Pipeline for your project.
19
+ p Especially when developing complex single page apps or HTML5 games, having to refresh the browser every time you change a file is too expensive, as you end up losing too much state and wind up having to recreate it every time.
20
+ p The Chrome Developer Console is a great tool, and allows you to make some changes and see immediate results, but having to then copy and paste your changes from the console back to your actual source code is a pain, and if your actual source code is made up of pre-processor languages, it is even worse.
21
+
22
+ p I developed CodeSync because I could no longer tolerate this.
23
+
24
+ p I wanted to make it easy to:
25
+
26
+ ul.features
27
+ li
28
+ span
29
+ | Experiment with my favorite pre-processor languages directly in the browser, and get immediate results without refreshing.
30
+
31
+ a.btn.try-it-now href="#"
32
+ | &nbsp; Click here to try it out now
33
+ | &nbsp; or press 'ctrl + j' to toggle the editor.
34
+
35
+ li
36
+ | Edit and save my application's assets in the browser if I wanted to, using a
37
+ a href="http://codemirror.net"
38
+ | a great editor
39
+ | , with syntax highlighting and Vim keybindings.
40
+
41
+ li Make changes in my IDE or Text Editor and see the effects directly in the running browser session.
42
+
43
+ li Write custom hooks which run whenever an asset changes, making it possible to hot reload code changes in a complex environment.
44
+
45
+ p To accomplish this, CodeSync has three major elements.
46
+
47
+ ul
48
+ li
49
+ a href="https://github.com/datapimp/code_sync/blob/master/lib/code_sync/manager.rb" target="_blank"
50
+ | CodeSync::Manager
51
+ | is a component that runs in the command line, it is automatically started for you in your Rails or Middleman project. It is responsible for watching the files in your project when they change, compiling them, and notifying interested browsers that there has been an update.
52
+ li
53
+ a href="https://github.com/datapimp/code_sync/blob/master/site/source/javascripts/code_sync/client/index.coffee" target="_blank"
54
+ | CodeSync.Client
55
+ | is a browser component which connects to the CodeSync::Manager and applies the changes that are made to the browser session you are in.
56
+ li
57
+ a href="https://github.com/datapimp/code_sync/blob/master/site/source/javascripts/code_sync/editor/index.coffee" target="_blank"
58
+ | CodeSync.AssetEditor
59
+ | is a powerful text editing tool that supports all of the major Asset Pipeline languages. It runs directly in your application, and stays out of your way until you need it. Think of it very similar to how you think of the Chrome Developer Console or Firebug. When you want to start experimenting with javascript and css to make changes to your site, this editor is available to you.
60
+
61
+
62
+ section.demos
63
+ h2 Advanced Demos
64
+ ul
65
+ li
66
+ a href="demo" A Codepen.io style web canvas
67
+
68
+ section.usage
69
+ h2 Usage
70
+ section.server-side
71
+ h3 In a Rails project
72
+ == partial "samples/rails"
73
+
74
+ h3 In a MiddleMan project
75
+ == partial "samples/middleman"
76
+
77
+ section.client-side
78
+ h3 The CodeSync browser client
79
+ == partial "samples/client"
80
+
81
+ h3 The CodeSync AssetEditor
82
+ == partial "samples/editor"
83
+
84
+ h2 Advanced Features
85
+ section.advanced-usage
86
+ h3 Using Standalone
87
+ == partial "samples/standalone"
88
+
89
+ h3 Hooking into asset changes
90
+ == partial "samples/hooks"
91
+
92
+
93
+
94
+ footer
95
+ p
96
+ | Brought to you by&nbsp;
97
+ a href="http://twitter.com/soderpop" Soederpop
98
+ span
99
+ | &nbsp;AKA&nbsp;
100
+ a href="https://github.com/datapimp" Datapimp
101
+
102
+
103
+ - if build?
104
+ javascript:
105
+ CodeSync.set("assetCompilationEndpoint", "http://infinite-beyond-8679.herokuapp.com/code-sync/source")
106
+ CodeSync.set("serverInfoEndpoint", "http://infinite-beyond-8679.herokuapp.com/code-sync/info")
107
+ CodeSync.set("disableAssetSave", true)
108
+
109
+ - if development?
110
+ javascript:
111
+ window.codeSyncClient = new CodeSync.Client()
112
+
113
+ javascript:
114
+ CodeSync.AssetEditor.setHotKey('ctrl+j')
115
+
116
+ window.codeSyncEditor = new CodeSync.AssetEditor({
117
+ autoAppend: true,
118
+ renderHidden: true,
119
+ startMode: 'scss'
120
+ })
121
+
122
+ $('.try-it-now').on("click", function(e){
123
+ CodeSync.AssetEditor.toggleEditor()
124
+ });
125
+
126
+
127
+
128
+