breakfast 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -0
- data/README.md +33 -31
- data/lib/breakfast.rb +6 -2
- data/lib/breakfast/capistrano.rb +2 -2
- data/lib/breakfast/capistrano/tasks/breakfast.rake +18 -2
- data/lib/breakfast/compilation_listener.rb +4 -4
- data/lib/breakfast/manifest.rb +115 -0
- data/lib/breakfast/railtie.rb +11 -2
- data/lib/breakfast/version.rb +1 -1
- data/lib/breakfast/view_helper.rb +11 -0
- data/lib/generators/breakfast/install_generator.rb +3 -3
- data/lib/tasks/breakfast.rake +61 -0
- data/node_package/package.json +1 -1
- data/node_package/src/status-bar.js +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9efb82f14ced85f239814ee2c1433b33f84cda1
|
4
|
+
data.tar.gz: ee25eca42d5a7358d824f7f5b533f6ca755e63b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62cdcdf0e004938f9d672cf8dc1d700f7b2aee6416617283611767e34ae9cbf99d8396e7de82fe75cb2b94c0891c0268c42f03cd58c6ff4c76901d00e9569077
|
7
|
+
data.tar.gz: e3ed59e5fc4c426d6c342427c3e6251ff1dba14e735def521dc19c6bb747fdb0bbae596c4670b443a3c041353abb29aa40a93608ecc7ad49f5e7b832b6b10328
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,59 @@
|
|
1
1
|
# CHANGE LOG
|
2
2
|
|
3
|
+
### 0.4.0 - 2016-11-14
|
4
|
+
#### Upgrading to `0.4.0` from `0.3.0`
|
5
|
+
- Update gem with `bundle update breakfast`
|
6
|
+
- Bump the `breakfast-rails` version in `package.json` to `0.4.0`
|
7
|
+
- Run `npm install`
|
8
|
+
|
9
|
+
*Note* Now by default asset fingerprinting will be on by default in production.
|
10
|
+
A copy of each with the original filename will be present as well, so any
|
11
|
+
hard-coded links to assets will still work correctly.
|
12
|
+
|
13
|
+
#### Added
|
14
|
+
- Asset Digests. Now when deploying assets will have fingerprints added to their
|
15
|
+
file names. This allows browsers to aggressively cache your assets.
|
16
|
+
- New Option: `breakfast.manifest.digest`. Defaults to false in development /
|
17
|
+
test and true everywhere else. When true, enables Rails to serve fingerprinted
|
18
|
+
assets.
|
19
|
+
- Rake Commands to trigger certain behavior:
|
20
|
+
- `breakfast:assets:build`
|
21
|
+
Manually run a compilation step.
|
22
|
+
- `breakfast:assets:build_production`
|
23
|
+
Manually trigger a production build. This will cause assets to get minified.
|
24
|
+
- `breakfast:assets:digest`
|
25
|
+
Run through your compiled assets and add a fingerprint to each one. Creates
|
26
|
+
a copy, leaving a file with the original filename and a duplicate with an
|
27
|
+
md5 fingerprint.
|
28
|
+
- `breakfast:assets:clean`
|
29
|
+
Removes any assets from the output folder that are not specified in the
|
30
|
+
manifest file (removes out of date files).
|
31
|
+
- `breakfast:assets:nuke`
|
32
|
+
Removes manifest and fingerprinted assets from the output folder.
|
33
|
+
- New Capistrano Option: `:breakfast_npm_install_command`
|
34
|
+
Defaults to just `install`. Can be overridden to redirect output to dev/null.
|
35
|
+
Example:
|
36
|
+
|
37
|
+
```
|
38
|
+
set :breakfast_npm_install_command, "install > /dev/null 2>&1"
|
39
|
+
```
|
40
|
+
|
41
|
+
#### Changes
|
42
|
+
- Fixed small CSS issue if box-sizing is not set border-box globally.
|
43
|
+
|
44
|
+
|
45
|
+
#### Contributors
|
46
|
+
Many many thanks to the contributors for this release!
|
47
|
+
- [@patkoperwas](https://github.com/patkoperwas)
|
48
|
+
- [@mikeastock](https://github.com/mikeastock)
|
49
|
+
- [@HParker](https://github.com/HParker)
|
50
|
+
|
51
|
+
|
3
52
|
## 0.3.1 - 2016-10-19
|
4
53
|
- Better support for determining if Server is running. Using puma, passneger,
|
5
54
|
etc. instead of the default rails server command now work.
|
6
55
|
|
56
|
+
|
7
57
|
## 0.3.0 - 2016-09-28
|
8
58
|
|
9
59
|
### Upgrading from `0.2.0`
|
data/README.md
CHANGED
@@ -15,46 +15,48 @@ See the official docs at
|
|
15
15
|
|
16
16
|
View updates in the [CHANGELOG](https://github.com/devlocker/breakfast/blob/master/CHANGELOG.md)
|
17
17
|
|
18
|
-
### Latest
|
19
|
-
- Allows Breakfast to run when Rails is started outside of bin/rails server,
|
20
|
-
i.e. bundle exec puma, passenger, thin, etc.
|
21
|
-
|
22
|
-
### Latest Release `0.3.0`
|
18
|
+
### Latest Release `0.4.0`
|
23
19
|
#### Added
|
24
|
-
-
|
25
|
-
|
26
|
-
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
20
|
+
- Asset Digests. Now when deploying assets will have fingerprints added to their
|
21
|
+
file names. This allows browsers to aggressively cache your assets.
|
22
|
+
- New Option: `breakfast.manifest.digest`. Defaults to false in development /
|
23
|
+
test and true everywhere else. When true, enables Rails to serve fingerprinted
|
24
|
+
assets.
|
25
|
+
- Rake Commands to trigger certain behavior:
|
26
|
+
- `breakfast:assets:build`
|
27
|
+
Manually run a compilation step.
|
28
|
+
- `breakfast:assets:build_production`
|
29
|
+
Manually trigger a production build. This will cause assets to get minified.
|
30
|
+
- `breakfast:assets:digest`
|
31
|
+
Run through your compiled assets and add a fingerprint to each one. Creates
|
32
|
+
a copy, leaving a file with the original filename and a duplicate with an
|
33
|
+
md5 fingerprint.
|
34
|
+
- `breakfast:assets:clean`
|
35
|
+
Removes any assets from the output folder that are not specified in the
|
36
|
+
manifest file (removes out of date files).
|
37
|
+
- `breakfast:assets:nuke`
|
38
|
+
Removes manifest and fingerprinted assets from the output folder.
|
39
|
+
- New Capistrano Option: `:breakfast_npm_install_command`
|
40
|
+
Defaults to just `install`. Can be overridden to redirect output to dev/null.
|
41
|
+
Example:
|
30
42
|
|
31
|
-
|
32
|
-
|
33
|
-
|
43
|
+
```
|
44
|
+
set :breakfast_npm_install_command, "install > /dev/null 2>&1"
|
45
|
+
```
|
34
46
|
|
35
|
-
####
|
36
|
-
-
|
37
|
-
source_code_folders option.
|
47
|
+
#### Changes
|
48
|
+
- Fixed small CSS issue if box-sizing is not set border-box globally.
|
38
49
|
|
39
50
|
|
40
51
|
### Upgrading
|
41
|
-
#### Upgrading to `0.
|
52
|
+
#### Upgrading to `0.4.0` from `0.3.0`
|
42
53
|
- Update gem with `bundle update breakfast`
|
43
|
-
- Bump the `breakfast-rails` version in `package.json` to `0.
|
54
|
+
- Bump the `breakfast-rails` version in `package.json` to `0.4.0`
|
44
55
|
- Run `npm install`
|
45
|
-
- If you have modified the `config.breakfast.view_folders` option you will need
|
46
|
-
to replace it. The new option is `config.breakfast.source_code_folders` and it
|
47
|
-
defaults to `[Rails.root.join("app")]`. If you have view or Ruby files that
|
48
|
-
you would like to trigger reloads outside of the `app` folder then append
|
49
|
-
those paths by adding:
|
50
|
-
|
51
|
-
```
|
52
|
-
config.breakfast.source_code_folders << Rails.root.join("lib")
|
53
|
-
```
|
54
|
-
|
55
|
-
To which ever environment you want `Breakfast` to run in
|
56
|
-
(probably `config/environments/development.rb`).
|
57
56
|
|
57
|
+
*Note* Now by default asset fingerprinting will be on by default in production.
|
58
|
+
A copy of each with the original filename will be present as well, so any
|
59
|
+
hard-coded links to assets will still work correctly.
|
58
60
|
|
59
61
|
### Contributing
|
60
62
|
Bug reports and pull requests are welcome on GitHub at
|
data/lib/breakfast.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
require "breakfast/version"
|
2
|
+
|
3
|
+
require "breakfast/brunch_watcher"
|
4
|
+
require "breakfast/compilation_listener"
|
2
5
|
require "breakfast/live_reload_channel"
|
6
|
+
require "breakfast/manifest"
|
3
7
|
require "breakfast/status_channel"
|
4
8
|
require "breakfast/view_helper"
|
5
|
-
require "breakfast/brunch_watcher"
|
6
|
-
require "breakfast/compilation_listener"
|
7
9
|
|
8
10
|
module Breakfast
|
9
11
|
STATUS_CHANNEL = "breakfast_status".freeze
|
10
12
|
RELOAD_CHANNEL = "breakfast_live_reload".freeze
|
13
|
+
BUILD_COMMAND = "./node_modules/brunch/bin/brunch build".freeze
|
14
|
+
PRODUCTION_BUILD_COMMAND = "./node_modules/brunch/bin/brunch build --production".freeze
|
11
15
|
end
|
12
16
|
|
13
17
|
require "breakfast/railtie" if defined?(Rails)
|
data/lib/breakfast/capistrano.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "capistrano/version"
|
2
2
|
|
3
|
-
if defined?(Capistrano::VERSION) && Gem::Version.new(Capistrano::VERSION).release >= Gem::Version.new(
|
3
|
+
if defined?(Capistrano::VERSION) && Gem::Version.new(Capistrano::VERSION).release >= Gem::Version.new("3.0.0")
|
4
4
|
load File.expand_path("../capistrano/tasks/breakfast.rake", __FILE__)
|
5
5
|
else
|
6
6
|
raise "Requires Capistrano V3"
|
@@ -3,13 +3,28 @@ namespace :breakfast do
|
|
3
3
|
task :compile do
|
4
4
|
on roles fetch(:breakfast_roles) do |host|
|
5
5
|
within release_path do
|
6
|
-
|
7
|
-
|
6
|
+
with rails_env: "#{fetch(:rails_env) || fetch(:stage)}" do
|
7
|
+
execute fetch(:breakfast_npm_path).to_sym, fetch(:breakfast_npm_install_command)
|
8
|
+
execute :rails, "breakfast:assets:build_production"
|
9
|
+
execute :rails, "breakfast:assets:digest"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Clean out old assets"
|
16
|
+
task :clean do
|
17
|
+
on roles fetch(:breakfast_roles) do |host|
|
18
|
+
within release_path do
|
19
|
+
with rails_env: "#{fetch(:rails_env) || fetch(:stage)}" do
|
20
|
+
execute :rails, "breakfast:assets:clean"
|
21
|
+
end
|
8
22
|
end
|
9
23
|
end
|
10
24
|
end
|
11
25
|
|
12
26
|
after "deploy:updated", "breakfast:compile"
|
27
|
+
after "deploy:published", "breakfast:clean"
|
13
28
|
end
|
14
29
|
|
15
30
|
|
@@ -17,5 +32,6 @@ namespace :load do
|
|
17
32
|
task :defaults do
|
18
33
|
set :breakfast_roles, -> { :web }
|
19
34
|
set :breakfast_npm_path, "/usr/bin/npm"
|
35
|
+
set :breakfast_npm_install_command, "install"
|
20
36
|
end
|
21
37
|
end
|
@@ -3,9 +3,9 @@ module Breakfast
|
|
3
3
|
ASSET_EXTENSIONS = ["css", "js"].freeze
|
4
4
|
SOURCE_CODE_EXTENSIONS = ["rb", "html", "haml", "slim"].freeze
|
5
5
|
|
6
|
-
def self.start(
|
7
|
-
asset_listener =
|
8
|
-
::Listen.to(
|
6
|
+
def self.start(asset_output_folder:, source_code_folders:)
|
7
|
+
asset_listener =
|
8
|
+
::Listen.to(asset_output_folder) do |modified, added, removed|
|
9
9
|
files = modified + added + removed
|
10
10
|
|
11
11
|
ASSET_EXTENSIONS.each do |extension|
|
@@ -15,7 +15,7 @@ module Breakfast
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
rails_listener =
|
18
|
+
rails_listener =
|
19
19
|
::Listen.to(*source_code_folders) do |modified, added, removed|
|
20
20
|
files = modified + added + removed
|
21
21
|
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require "json"
|
2
|
+
require "digest"
|
3
|
+
require "fileutils"
|
4
|
+
|
5
|
+
module Breakfast
|
6
|
+
class Manifest
|
7
|
+
MANIFEST_REGEX = /^\.breakfast-manifest-[0-9a-f]{32}.json$/
|
8
|
+
SPROCKETS_MANIFEST_REGEX = /^\.sprockets-manifest-[0-9a-f]{32}.json$/
|
9
|
+
FINGERPRINT_REGEX = /-[0-9a-f]{32}./
|
10
|
+
|
11
|
+
attr_reader :base_dir, :manifest_path, :cache
|
12
|
+
def initialize(base_dir:)
|
13
|
+
FileUtils.mkdir_p(base_dir)
|
14
|
+
|
15
|
+
@base_dir = Pathname.new(base_dir)
|
16
|
+
@manifest_path = find_manifest_or_create
|
17
|
+
@cache = update_cache!
|
18
|
+
end
|
19
|
+
|
20
|
+
def asset(path)
|
21
|
+
cache[path]
|
22
|
+
end
|
23
|
+
|
24
|
+
# The #digest! method will run through all of the compiled assets and
|
25
|
+
# create a copy of each asset with a digest fingerprint. This fingerprint
|
26
|
+
# will change whenever the file contents change. This allows us to use HTTP
|
27
|
+
# headers to cache these assets as we will be able to reliably know when
|
28
|
+
# they change.
|
29
|
+
#
|
30
|
+
# These fingerprinted files are copies of the original. The originals are
|
31
|
+
# not removed and still available should the need arise to serve a
|
32
|
+
# non-fingerprinted asset.
|
33
|
+
#
|
34
|
+
# Example manifest:
|
35
|
+
# {
|
36
|
+
# app.js => app-76c6ee161ba431e823301567b175acda.js,
|
37
|
+
# images/logo.png => images/logo-869269cdf1773ff0dec91bafb37310ea.png,
|
38
|
+
# }
|
39
|
+
#
|
40
|
+
# Resulting File Structure:
|
41
|
+
# - /
|
42
|
+
# - app.js
|
43
|
+
# - app-76c6ee161ba431e823301567b175acda.js
|
44
|
+
# - images/
|
45
|
+
# - logo.png
|
46
|
+
# - logo-869269cdf1773ff0dec91bafb37310ea.png
|
47
|
+
def digest!
|
48
|
+
assets = asset_paths.map do |path|
|
49
|
+
digest = Digest::MD5.new
|
50
|
+
digest.update(File.read("#{base_dir}/#{path}"))
|
51
|
+
|
52
|
+
digest_path = "#{path.sub_ext('')}-#{digest.hexdigest}#{File.extname(path)}"
|
53
|
+
|
54
|
+
FileUtils.cp("#{base_dir}/#{path}", "#{base_dir}/#{digest_path}")
|
55
|
+
|
56
|
+
[path, digest_path]
|
57
|
+
end
|
58
|
+
|
59
|
+
File.open(manifest_path, "w") do |manifest|
|
60
|
+
manifest.write(assets.to_h.to_json)
|
61
|
+
end
|
62
|
+
|
63
|
+
update_cache!
|
64
|
+
end
|
65
|
+
|
66
|
+
# Remove any files not directly referenced by the manifest.
|
67
|
+
def clean!
|
68
|
+
files_to_keep = cache.keys.concat(cache.values)
|
69
|
+
|
70
|
+
if (sprockets_manifest = Dir.entries("#{base_dir}").detect { |entry| entry =~ SPROCKETS_MANIFEST_REGEX })
|
71
|
+
files_to_keep.concat(JSON.parse(File.read("#{base_dir}/#{sprockets_manifest}"))["files"].keys)
|
72
|
+
end
|
73
|
+
|
74
|
+
Dir["#{base_dir}/**/*"].each do |path|
|
75
|
+
next if File.directory?(path) || files_to_keep.include?(Pathname(path).relative_path_from(base_dir).to_s)
|
76
|
+
|
77
|
+
FileUtils.rm(path)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# Remove manifest, any fingerprinted files.
|
82
|
+
def nuke!
|
83
|
+
Dir["#{base_dir}/**/*"]
|
84
|
+
.select { |path| path =~ FINGERPRINT_REGEX }
|
85
|
+
.each { |file| FileUtils.rm(file) }
|
86
|
+
|
87
|
+
FileUtils.rm(manifest_path)
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def update_cache!
|
93
|
+
@cache = JSON.parse(File.read(manifest_path))
|
94
|
+
end
|
95
|
+
|
96
|
+
# Creates a or finds a manifest file in a given directory. The manifest
|
97
|
+
# file is is prefixed with a dot ('.') and given a random string to ensure
|
98
|
+
# the file is not served or easily discoverable.
|
99
|
+
def find_manifest_or_create
|
100
|
+
if (manifest = Dir.entries("#{base_dir}").detect { |entry| entry =~ MANIFEST_REGEX })
|
101
|
+
"#{base_dir}/#{manifest}"
|
102
|
+
else
|
103
|
+
manifest = "#{base_dir}/.breakfast-manifest-#{SecureRandom.hex(16)}.json"
|
104
|
+
File.open(manifest, "w") { |manifest| manifest.write({}.to_json) }
|
105
|
+
manifest
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def asset_paths
|
110
|
+
Dir["#{base_dir}/**/*"]
|
111
|
+
.reject { |path| File.directory?(path) || path =~ FINGERPRINT_REGEX }
|
112
|
+
.map { |file| Pathname(file).relative_path_from(base_dir) }
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
data/lib/breakfast/railtie.rb
CHANGED
@@ -11,10 +11,11 @@ module Breakfast
|
|
11
11
|
config.breakfast.css_reload_strategy = :hot
|
12
12
|
config.breakfast.ruby_reload_strategy = :off
|
13
13
|
|
14
|
-
config.breakfast.
|
14
|
+
config.breakfast.asset_output_folder = Rails.root.join("public", "assets")
|
15
15
|
config.breakfast.source_code_folders = [Rails.root.join("app")]
|
16
16
|
config.breakfast.environments = %w(development)
|
17
17
|
config.breakfast.status_bar_location = :bottom
|
18
|
+
config.breakfast.digest = !(Rails.env.development? || Rails.env.test?)
|
18
19
|
end
|
19
20
|
|
20
21
|
initializer "breakfast.setup_view_helpers" do |app|
|
@@ -23,14 +24,22 @@ module Breakfast
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
27
|
+
rake_tasks do
|
28
|
+
load "tasks/breakfast.rake"
|
29
|
+
end
|
30
|
+
|
26
31
|
config.after_initialize do |app|
|
32
|
+
if config.breakfast.digest
|
33
|
+
config.breakfast.manifest = Breakfast::Manifest.new(base_dir: config.breakfast.asset_output_folder)
|
34
|
+
end
|
35
|
+
|
27
36
|
if config.breakfast.environments.include?(Rails.env) && LocalEnvironment.new.running_server?
|
28
37
|
Thread.new do
|
29
38
|
Breakfast::BrunchWatcher.spawn(log: Rails.logger)
|
30
39
|
end
|
31
40
|
|
32
41
|
Breakfast::CompilationListener.start(
|
33
|
-
|
42
|
+
asset_output_folder: config.breakfast.asset_output_folder,
|
34
43
|
source_code_folders: config.breakfast.source_code_folders
|
35
44
|
)
|
36
45
|
end
|
data/lib/breakfast/version.rb
CHANGED
@@ -19,5 +19,16 @@ module Breakfast
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
|
+
|
23
|
+
include ActionView::Helpers::AssetUrlHelper
|
24
|
+
include ActionView::Helpers::AssetTagHelper
|
25
|
+
|
26
|
+
def compute_asset_path(path, options = {})
|
27
|
+
if Rails.configuration.breakfast.digest && Rails.configuration.breakfast.manifest.asset(path)
|
28
|
+
path = Rails.configuration.breakfast.manifest.asset(path)
|
29
|
+
end
|
30
|
+
|
31
|
+
super(path, options)
|
32
|
+
end
|
22
33
|
end
|
23
34
|
end
|
@@ -3,9 +3,9 @@ require "rails/generators"
|
|
3
3
|
module Breakfast
|
4
4
|
module Generators
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
|
-
source_root File.expand_path(
|
7
|
-
NODE_VERSION =
|
8
|
-
NPM_VERSION =
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
NODE_VERSION = "v4.1.1"
|
8
|
+
NPM_VERSION = "3.10.6"
|
9
9
|
|
10
10
|
def install
|
11
11
|
if node_prerequisites_installed?
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require "rake"
|
2
|
+
require "breakfast"
|
3
|
+
|
4
|
+
namespace :breakfast do
|
5
|
+
namespace :assets do
|
6
|
+
desc "Build assets"
|
7
|
+
task :build => :environment do
|
8
|
+
exec(Breakfast::BUILD_COMMAND)
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "Build assets for production"
|
12
|
+
task :build_production => :environment do
|
13
|
+
exec(Breakfast::PRODUCTION_BUILD_COMMAND)
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Add a digest to non-fingerprinted assets"
|
17
|
+
task :digest => :environment do
|
18
|
+
if Rails.configuration.breakfast.manifest
|
19
|
+
Rails.configuration.breakfast.manifest.digest!
|
20
|
+
else
|
21
|
+
raise Breakfast::ManifestDisabledError
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "Remove out of date assets"
|
26
|
+
task :clean => :environment do
|
27
|
+
if Rails.configuration.breakfast.manifest
|
28
|
+
Rails.configuration.breakfast.manifest.clean!
|
29
|
+
else
|
30
|
+
raise Breakfast::ManifestDisabledError
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "Remove manifest and fingerprinted assets"
|
35
|
+
task :nuke => :environment do
|
36
|
+
if Rails.configuration.breakfast.manifest
|
37
|
+
Rails.configuration.breakfast.manifest.nuke!
|
38
|
+
else
|
39
|
+
raise Breakfast::ManifestDisabledError
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
module Breakfast
|
46
|
+
class ManifestDisabledError < StandardError
|
47
|
+
def initialize
|
48
|
+
super(
|
49
|
+
<<~ERROR
|
50
|
+
Rails.configuration.breakfast.manifest is set to false.
|
51
|
+
Enable it by adding the following in your environment file:
|
52
|
+
|
53
|
+
config.breakfast.manifest.digest = true
|
54
|
+
|
55
|
+
*Note* by default digest is set to false in development and test enviornments.
|
56
|
+
|
57
|
+
ERROR
|
58
|
+
)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/node_package/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breakfast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Koperwas
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- lib/breakfast/capistrano/tasks/breakfast.rake
|
120
120
|
- lib/breakfast/compilation_listener.rb
|
121
121
|
- lib/breakfast/live_reload_channel.rb
|
122
|
+
- lib/breakfast/manifest.rb
|
122
123
|
- lib/breakfast/railtie.rb
|
123
124
|
- lib/breakfast/status_channel.rb
|
124
125
|
- lib/breakfast/version.rb
|
@@ -128,6 +129,7 @@ files:
|
|
128
129
|
- lib/generators/breakfast/templates/app.scss
|
129
130
|
- lib/generators/breakfast/templates/brunch-config.js
|
130
131
|
- lib/generators/breakfast/templates/package.json
|
132
|
+
- lib/tasks/breakfast.rake
|
131
133
|
- node_package/.eslintrc.json
|
132
134
|
- node_package/.npmignore
|
133
135
|
- node_package/package.json
|