code_sync 0.6.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -0
- data/CNAME +1 -0
- data/Gemfile +24 -0
- data/Gemfile.lock +117 -0
- data/LICENSE.md +22 -0
- data/ROADMAP.md +20 -0
- data/TODO.md +14 -0
- data/bin/codesync +11 -0
- data/code_sync.gemspec +30 -0
- data/config/routes.rb +26 -0
- data/lib/assets/javascripts/canvas.coffee +12 -0
- data/lib/assets/javascripts/canvas/editors.coffee +48 -0
- data/lib/assets/javascripts/canvas/index.coffee +15 -0
- data/lib/assets/javascripts/canvas/layer_controller.coffee +47 -0
- data/lib/assets/javascripts/code_sync.coffee +3 -0
- data/lib/assets/javascripts/code_sync/backends/gist.coffee +78 -0
- data/lib/assets/javascripts/code_sync/client/index.coffee +104 -0
- data/lib/assets/javascripts/code_sync/client/util.coffee +61 -0
- data/lib/assets/javascripts/code_sync/codemirror.coffee +12 -0
- data/lib/assets/javascripts/code_sync/config.js.coffee.erb +38 -0
- data/lib/assets/javascripts/code_sync/console/index.coffee +54 -0
- data/lib/assets/javascripts/code_sync/console/templates/console.jst.skim +10 -0
- data/lib/assets/javascripts/code_sync/dependencies.coffee +6 -0
- data/lib/assets/javascripts/code_sync/editor/advanced.coffee +0 -0
- data/lib/assets/javascripts/code_sync/editor/datasources/document.coffee +212 -0
- data/lib/assets/javascripts/code_sync/editor/datasources/gist_loader.coffee +7 -0
- data/lib/assets/javascripts/code_sync/editor/datasources/modes.coffee +117 -0
- data/lib/assets/javascripts/code_sync/editor/datasources/project_assets.coffee +14 -0
- data/lib/assets/javascripts/code_sync/editor/index.coffee +415 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/asset_selector.coffee +106 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/color_picker.coffee +83 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/document_manager.coffee +55 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/document_tabs.coffee +178 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/element_sync.coffee +111 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/keymap_selector.coffee +44 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/mode_selector.coffee +53 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/name_input.coffee +44 -0
- data/lib/assets/javascripts/code_sync/editor/plugins/preferences.coffee +71 -0
- data/lib/assets/javascripts/code_sync/editor/templates/asset_editor.jst.skim +2 -0
- data/lib/assets/javascripts/code_sync/editor/templates/asset_selector.jst.skim +5 -0
- data/lib/assets/javascripts/code_sync/editor/templates/document_manager_tab.jst.skim +15 -0
- data/lib/assets/javascripts/code_sync/editor/templates/element_sync.jst.skim +19 -0
- data/lib/assets/javascripts/code_sync/editor/templates/preferences_panel.jst.skim +38 -0
- data/lib/assets/javascripts/code_sync/editor/views/asset_selector.coffee +106 -0
- data/lib/assets/javascripts/code_sync/editor/views/color_picker.coffee +76 -0
- data/lib/assets/javascripts/code_sync/editor/views/document_manager.coffee +176 -0
- data/lib/assets/javascripts/code_sync/editor/views/keymap_selector.coffee +37 -0
- data/lib/assets/javascripts/code_sync/editor/views/mode_selector.coffee +47 -0
- data/lib/assets/javascripts/code_sync/editor/views/name_input.coffee +44 -0
- data/lib/assets/javascripts/code_sync/editor/views/preferences.coffee +71 -0
- data/lib/assets/javascripts/code_sync/index.coffee +4 -0
- data/lib/assets/javascripts/code_sync/reloader.coffee +2 -0
- data/lib/assets/javascripts/code_sync_basic.coffee +1 -0
- data/lib/assets/javascripts/demos.coffee +48 -0
- data/lib/assets/javascripts/demos/default-content.coffee +72 -0
- data/lib/assets/javascripts/demos/layout_selector.coffee +19 -0
- data/lib/assets/javascripts/demos/tour.coffee +70 -0
- data/lib/assets/javascripts/demos/tour.jst.skim +29 -0
- data/lib/assets/javascripts/marketing.coffee +0 -0
- data/lib/assets/javascripts/vendor/.DS_Store +0 -0
- data/lib/assets/javascripts/vendor/backbone-events.js +160 -0
- data/lib/assets/javascripts/vendor/backbone-min.js +4 -0
- data/lib/assets/javascripts/vendor/codemirror-coffeescript.js +346 -0
- data/lib/assets/javascripts/vendor/codemirror-css.js +570 -0
- data/lib/assets/javascripts/vendor/codemirror-haml.js +153 -0
- data/lib/assets/javascripts/vendor/codemirror-htmlmixed.js +104 -0
- data/lib/assets/javascripts/vendor/codemirror-javascript.js +468 -0
- data/lib/assets/javascripts/vendor/codemirror-markdown.js +526 -0
- data/lib/assets/javascripts/vendor/codemirror-ruby.js +194 -0
- data/lib/assets/javascripts/vendor/codemirror-sass.js +330 -0
- data/lib/assets/javascripts/vendor/codemirror-skim.js +330 -0
- data/lib/assets/javascripts/vendor/codemirror-vim.js +3159 -0
- data/lib/assets/javascripts/vendor/codemirror-xml.js +328 -0
- data/lib/assets/javascripts/vendor/console.js +339 -0
- data/lib/assets/javascripts/vendor/gisted.js +27 -0
- data/lib/assets/javascripts/vendor/jquery-ui-resize-drag.min.js +6 -0
- data/lib/assets/javascripts/vendor/jquery.js +5 -0
- data/lib/assets/javascripts/vendor/keylauncher.js +4 -0
- data/lib/assets/javascripts/vendor/keymaster.min.js +4 -0
- data/lib/assets/javascripts/vendor/spectrum.js +1868 -0
- data/lib/assets/javascripts/vendor/underscore-min.js +1 -0
- data/lib/assets/javascripts/vendor/underscore.string.min.js +1 -0
- data/lib/assets/javascripts/vendor/vendored_codemirror.js +5558 -0
- data/lib/assets/javascripts/vendor/zepto.js +2 -0
- data/lib/assets/stylesheets/canvas.css.scss +101 -0
- data/lib/assets/stylesheets/code_sync.css.scss +4 -0
- data/lib/assets/stylesheets/code_sync/codemirror.css +7 -0
- data/lib/assets/stylesheets/code_sync/console.css +86 -0
- data/lib/assets/stylesheets/code_sync/editor/asset-name-input.css.scss +12 -0
- data/lib/assets/stylesheets/code_sync/editor/asset-selector.css.scss +58 -0
- data/lib/assets/stylesheets/code_sync/editor/codesync-color-picker.css.sass +5 -0
- data/lib/assets/stylesheets/code_sync/editor/document-tabs.css.scss +61 -0
- data/lib/assets/stylesheets/code_sync/editor/element-sync.css.scss +72 -0
- data/lib/assets/stylesheets/code_sync/editor/mode-selector.css.scss +0 -0
- data/lib/assets/stylesheets/code_sync/editor/preferences-panel.css.scss +26 -0
- data/lib/assets/stylesheets/code_sync/index.css.scss +141 -0
- data/lib/assets/stylesheets/demos.css.scss +96 -0
- data/lib/assets/stylesheets/marketing.css.sass +46 -0
- data/lib/assets/stylesheets/marketing/syntax.css.scss +1 -0
- data/lib/assets/stylesheets/vendor/animate.css +1 -0
- data/lib/assets/stylesheets/vendor/codemirror-ambiance.css +75 -0
- data/lib/assets/stylesheets/vendor/codemirror-lesserdark.css +44 -0
- data/lib/assets/stylesheets/vendor/codemirror-monokai.css +28 -0
- data/lib/assets/stylesheets/vendor/codemirror-xq-light.css +43 -0
- data/lib/assets/stylesheets/vendor/grid-layout.css +1406 -0
- data/lib/assets/stylesheets/vendor/spectrum.css +481 -0
- data/lib/assets/stylesheets/vendor/vendored_codemirror.css +246 -0
- data/lib/code_sync.rb +41 -0
- data/lib/code_sync/cli.rb +73 -0
- data/lib/code_sync/manager.rb +238 -0
- data/lib/code_sync/processors.rb +18 -0
- data/lib/code_sync/processors/basic.rb +9 -0
- data/lib/code_sync/processors/jst_processor.rb +17 -0
- data/lib/code_sync/pry_console.rb +132 -0
- data/lib/code_sync/rails.rb +7 -0
- data/lib/code_sync/rails/engine.rb +12 -0
- data/lib/code_sync/server.rb +225 -0
- data/lib/code_sync/sprockets_adapter.rb +145 -0
- data/lib/code_sync/temp_asset.rb +20 -0
- data/lib/code_sync/version.rb +3 -0
- data/lib/middleman_extension.rb +43 -0
- data/readme.md +26 -0
- data/site/.gitignore +14 -0
- data/site/Gemfile +13 -0
- data/site/Gemfile.lock +183 -0
- data/site/config.rb +26 -0
- data/site/source/canvas.html.slim +21 -0
- data/site/source/codepen-style-demo.html.slim +21 -0
- data/site/source/demo.html.slim +30 -0
- data/site/source/index.html.slim +128 -0
- data/site/source/layouts/layout.slim +18 -0
- data/site/source/samples/_client.html.md +13 -0
- data/site/source/samples/_editor.html.md +19 -0
- data/site/source/samples/_hooks.html.md +8 -0
- data/site/source/samples/_middleman.html.md +7 -0
- data/site/source/samples/_rails.html.md +8 -0
- data/site/source/samples/_standalone.html.md +36 -0
- data/spec/lib/code_sync/sprockets_adapter_spec.rb +44 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/support/.DS_Store +0 -0
- data/spec/support/dummy_middleman/.gitignore +14 -0
- data/spec/support/dummy_middleman/Gemfile +5 -0
- data/spec/support/dummy_middleman/Gemfile.lock +100 -0
- data/spec/support/dummy_middleman/config.rb +77 -0
- data/spec/support/dummy_middleman/source/images/background.png +0 -0
- data/spec/support/dummy_middleman/source/images/middleman.png +0 -0
- data/spec/support/dummy_middleman/source/index.html.erb +10 -0
- data/spec/support/dummy_middleman/source/javascripts/all.js +1 -0
- data/spec/support/dummy_middleman/source/layouts/layout.erb +19 -0
- data/spec/support/dummy_middleman/source/stylesheets/all.css +55 -0
- data/spec/support/dummy_middleman/source/stylesheets/normalize.css +375 -0
- data/spec/support/dummy_rails/.gitignore +15 -0
- data/spec/support/dummy_rails/Gemfile +38 -0
- data/spec/support/dummy_rails/Gemfile.lock +112 -0
- data/spec/support/dummy_rails/README.rdoc +261 -0
- data/spec/support/dummy_rails/Rakefile +7 -0
- data/spec/support/dummy_rails/app/assets/images/rails.png +0 -0
- data/spec/support/dummy_rails/app/assets/javascripts/application.js +15 -0
- data/spec/support/dummy_rails/app/assets/stylesheets/application.css +13 -0
- data/spec/support/dummy_rails/app/controllers/application_controller.rb +3 -0
- data/spec/support/dummy_rails/app/helpers/application_helper.rb +2 -0
- data/spec/support/dummy_rails/app/mailers/.gitkeep +0 -0
- data/spec/support/dummy_rails/app/models/.gitkeep +0 -0
- data/spec/support/dummy_rails/app/views/layouts/application.html.erb +14 -0
- data/spec/support/dummy_rails/config.ru +4 -0
- data/spec/support/dummy_rails/config/application.rb +62 -0
- data/spec/support/dummy_rails/config/boot.rb +6 -0
- data/spec/support/dummy_rails/config/database.yml +25 -0
- data/spec/support/dummy_rails/config/environment.rb +5 -0
- data/spec/support/dummy_rails/config/environments/development.rb +37 -0
- data/spec/support/dummy_rails/config/environments/production.rb +67 -0
- data/spec/support/dummy_rails/config/environments/test.rb +37 -0
- data/spec/support/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/support/dummy_rails/config/initializers/inflections.rb +15 -0
- data/spec/support/dummy_rails/config/initializers/mime_types.rb +5 -0
- data/spec/support/dummy_rails/config/initializers/secret_token.rb +7 -0
- data/spec/support/dummy_rails/config/initializers/session_store.rb +8 -0
- data/spec/support/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
- data/spec/support/dummy_rails/config/locales/en.yml +5 -0
- data/spec/support/dummy_rails/config/routes.rb +58 -0
- data/spec/support/dummy_rails/db/seeds.rb +7 -0
- data/spec/support/dummy_rails/doc/README_FOR_APP +2 -0
- data/spec/support/dummy_rails/lib/assets/.gitkeep +0 -0
- data/spec/support/dummy_rails/lib/tasks/.gitkeep +0 -0
- data/spec/support/dummy_rails/log/.gitkeep +0 -0
- data/spec/support/dummy_rails/public/404.html +26 -0
- data/spec/support/dummy_rails/public/422.html +26 -0
- data/spec/support/dummy_rails/public/500.html +25 -0
- data/spec/support/dummy_rails/public/favicon.ico +0 -0
- data/spec/support/dummy_rails/public/index.html +241 -0
- data/spec/support/dummy_rails/public/robots.txt +5 -0
- data/spec/support/dummy_rails/script/rails +6 -0
- data/spec/support/dummy_rails/test/fixtures/.gitkeep +0 -0
- data/spec/support/dummy_rails/test/functional/.gitkeep +0 -0
- data/spec/support/dummy_rails/test/integration/.gitkeep +0 -0
- data/spec/support/dummy_rails/test/performance/browsing_test.rb +12 -0
- data/spec/support/dummy_rails/test/test_helper.rb +13 -0
- data/spec/support/dummy_rails/test/unit/.gitkeep +0 -0
- data/spec/support/dummy_rails/vendor/assets/javascripts/.gitkeep +0 -0
- data/spec/support/dummy_rails/vendor/assets/stylesheets/.gitkeep +0 -0
- data/spec/support/dummy_rails/vendor/plugins/.gitkeep +0 -0
- data/spec/support/dummy_static/.DS_Store +0 -0
- data/spec/support/dummy_static/app/.DS_Store +0 -0
- data/spec/support/dummy_static/app/assets/.DS_Store +0 -0
- data/spec/support/dummy_static/app/assets/javascripts/manifest.coffee +4 -0
- data/spec/support/dummy_static/app/assets/javascripts/spec_application_javascript.coffee +4 -0
- data/spec/support/dummy_static/app/assets/stylesheets/spec_application_stylesheet.css.scss +5 -0
- data/spec/support/dummy_static/lib/assets/javascripts/spec_library_javascript.coffee +3 -0
- data/spec/support/dummy_static/lib/assets/stylesheets/spec_library_stylesheet.css.scss +5 -0
- data/spec/support/dummy_static/vendor/assets/javascripts/spec_vendor_javascript.js +5 -0
- data/spec/support/dummy_static/vendor/assets/stylesheets/spec_vendor_stylesheets.css +3 -0
- data/vendor/assets/stylesheets/code_sync.css +1 -0
- 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,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
|
+
| Click here to try it out now
|
33
|
+
| 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
|
97
|
+
a href="http://twitter.com/soderpop" Soederpop
|
98
|
+
span
|
99
|
+
| AKA
|
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
|
+
|