Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split vendored code from our own #885

Merged
merged 1 commit into from
Nov 2, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 3 additions & 22 deletions app/assets/javascripts/pageflow/base.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,12 @@
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
// base JavaScript file for Pageflow.
// This file is meant to hold code we develop.
// And vendor code that changes a lot.

//= require polyfills/bind

//= require i18n
//= require jquery
//= require jquery-ui/widget
//= require jquery_ujs
//= require ./jquery_utils
//= require iscroll
//= require audio5.min
//= require ./videojs
//= require jquery.fullscreen
//= require jquery.placeholder

//= require react
//= require backbone-rails
//= require_self

//= require ./object
Expand Down
16 changes: 16 additions & 0 deletions app/assets/javascripts/pageflow/vendor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// vendor JavaScript manifest for Pageflow.
// This file is meant to hold code we don't develop and/or rarely change.
// It means this asset will stay cached for much longer.

//= require i18n
//= require jquery
//= require jquery-ui/widget
//= require jquery_ujs
//= require jquery.fullscreen
//= require jquery.placeholder

//= require iscroll
//= require audio5.min

//= require react
//= require backbone-rails
3 changes: 2 additions & 1 deletion app/views/layouts/pageflow/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
window.PAGEFLOW_EDITOR = <%= @editor_scope ? 'true' : 'false' %>;
</script>

<%= javascript_include_tag "pageflow/application", "data-turbolinks-track" => true %>
<%= javascript_include_tag 'pageflow/vendor', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'pageflow/application', 'data-turbolinks-track' => true %>

<%= csrf_meta_tags %>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, minimum-scale=1, maximum-scale=1" />
Expand Down
43 changes: 24 additions & 19 deletions lib/pageflow/engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,25 +57,6 @@ class Engine < ::Rails::Engine
config.i18n.reload!
end

# Precompile additional assets. pageflow/editor.* has to be
# provided by the main app.
config.assets.precompile += %w(pageflow/editor.js pageflow/editor.css
pageflow/application_with_simulated_media_queries.css
pageflow/print_view.css
pageflow/lt_ie9.js pageflow/lt_ie9.css pageflow/ie9.js pageflow/ie9.css
video-js.swf vjs.eot vjs.svg vjs.ttf vjs.woff)

config.assets.precompile << lambda do |path, _filename|
Pageflow.config.themes.any? do |theme|
path == theme.stylesheet_path
end
end

config.assets.precompile << lambda do |path, filename|
filename.start_with?(Engine.root.join('app/assets').to_s) &&
!['.js', '.css', ''].include?(File.extname(path))
end

# Make sure the configuration is recreated when classes are
# reloded. Otherwise registered page types might still point to
# unloaded classes in development mode.
Expand All @@ -88,5 +69,29 @@ class Engine < ::Rails::Engine
FactoryGirl.definition_file_paths.unshift(Engine.root.join('spec', 'factories'))
end
end

# Precompile additional assets. pageflow/editor.* has to be
# provided by the main app.
initializer 'pageflow.assets.precompile' do |app|
app.config.assets.precompile += %w(
pageflow/editor.js pageflow/editor.css
pageflow/application_with_simulated_media_queries.css
pageflow/print_view.css
pageflow/lt_ie9.js pageflow/lt_ie9.css pageflow/ie9.js pageflow/ie9.css
pageflow/vendor.js
video-js.swf vjs.eot vjs.svg vjs.ttf vjs.woff
)

app.config.assets.precompile << lambda do |path, _filename|
Pageflow.config.themes.any? do |theme|
path == theme.stylesheet_path
end
end

app.config.assets.precompile << lambda do |path, filename|
filename.start_with?(Engine.root.join('app/assets').to_s) &&
!['.js', '.css', ''].include?(File.extname(path))
end
end
end
end
1 change: 1 addition & 0 deletions spec/javascripts/spec_helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
//= require support/chai-jq-0.0.7
//= require support/sinon-chai

//= require pageflow/vendor
//= require pageflow/application
//= require pageflow/editor

Expand Down