breakfast 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/breakfast/version.rb +1 -1
- data/lib/generators/breakfast/install_generator.rb +4 -5
- data/lib/generators/breakfast/templates/brunch-config.js +4 -4
- data/lib/generators/breakfast/templates/initialize.js +5 -3
- data/lib/generators/breakfast/templates/package.json +1 -1
- data/node_package/.eslintrc.json +84 -0
- data/node_package/package.json +4 -3
- data/node_package/src/breakfast-rails.js +6 -5
- data/node_package/src/live-reload.js +29 -25
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 561ba17e882e6d9069d94220c56c069e9fb475eb
|
4
|
+
data.tar.gz: 58ef9663f51d39ec0160d5249ce988fd5f695776
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3694cee7b22999c5db5314bf1bbe32f04aa0344fea234a77826250826f7eceefcb99b4d1c000bcc4604beef8a3f6ccf5e5a7f5b950d7806bb4e2b046304fd771
|
7
|
+
data.tar.gz: 5a4f4fc04912a9f33bd6bbfaf358ff52a354203b731ba9096646e1c2b44c8395ccc70099e61831a7372bcd01e7e443e0a077c6735acb28fb3fa9ca832105d082
|
data/lib/breakfast/version.rb
CHANGED
@@ -49,14 +49,13 @@ module Breakfast
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def create_directory_structure
|
52
|
-
empty_directory "
|
53
|
-
empty_directory "
|
54
|
-
empty_directory "
|
55
|
-
empty_directory "assets/vendor"
|
52
|
+
empty_directory "app/frontend/css"
|
53
|
+
empty_directory "app/frontend/images"
|
54
|
+
empty_directory "app/frontend/js"
|
56
55
|
end
|
57
56
|
|
58
57
|
def create_initialize_file
|
59
|
-
copy_file "
|
58
|
+
copy_file "app.js", "app/frontend/js/app.js"
|
60
59
|
end
|
61
60
|
|
62
61
|
def run_npm_install
|
@@ -2,8 +2,8 @@ module.exports = {
|
|
2
2
|
files: {
|
3
3
|
javascripts: {
|
4
4
|
joinTo: {
|
5
|
-
'app.js': /^
|
6
|
-
'vendor.js': /^(?!
|
5
|
+
'app.js': /^app\/frontend\/js\//,
|
6
|
+
'vendor.js': /^(?!app\/frontend\/js)/
|
7
7
|
}
|
8
8
|
},
|
9
9
|
stylesheets: {
|
@@ -19,14 +19,14 @@ module.exports = {
|
|
19
19
|
|
20
20
|
paths: {
|
21
21
|
watched: [
|
22
|
-
"
|
22
|
+
"app/frontend",
|
23
23
|
],
|
24
24
|
|
25
25
|
public: "public/assets"
|
26
26
|
},
|
27
27
|
|
28
28
|
conventions: {
|
29
|
-
assets: /^(
|
29
|
+
assets: /^(app\/frontend\/images)/
|
30
30
|
},
|
31
31
|
|
32
32
|
npm: {
|
@@ -0,0 +1,84 @@
|
|
1
|
+
{
|
2
|
+
"env": {
|
3
|
+
"browser": true,
|
4
|
+
"node": true,
|
5
|
+
"es6": true
|
6
|
+
},
|
7
|
+
"rules": {
|
8
|
+
"block-spacing": [2, "always"],
|
9
|
+
"brace-style": [2, "1tbs", {"allowSingleLine": true}],
|
10
|
+
"comma-style": [2, "last"],
|
11
|
+
"func-style": [2, "expression"],
|
12
|
+
"semi": [2, "always"],
|
13
|
+
"quotes": [2, "single", "avoid-escape"],
|
14
|
+
"indent": [2, 2, {"SwitchCase": 1}],
|
15
|
+
"dot-location": [2, "property"],
|
16
|
+
"camelcase": [1, {"properties": "always"}],
|
17
|
+
"comma-spacing": [2, {"before": false, "after": true}],
|
18
|
+
"comma-dangle": [2, "never"],
|
19
|
+
"semi-spacing": [2, {"before": false, "after": true}],
|
20
|
+
"curly": [2, "multi-line", "consistent"],
|
21
|
+
"no-debugger": 2,
|
22
|
+
"no-dupe-args": 2,
|
23
|
+
"no-dupe-keys": 2,
|
24
|
+
"no-duplicate-case": 2,
|
25
|
+
"no-empty": 2,
|
26
|
+
"no-ex-assign": 2,
|
27
|
+
"no-extra-semi": 2,
|
28
|
+
"no-func-assign": 2,
|
29
|
+
"no-irregular-whitespace": 2,
|
30
|
+
"no-sparse-arrays": 2,
|
31
|
+
"no-unexpected-multiline": 2,
|
32
|
+
"no-unreachable": 2,
|
33
|
+
"no-unused-vars": [2, {"varsIgnorePattern": "ignored"}],
|
34
|
+
"valid-typeof": 2,
|
35
|
+
"eqeqeq": [2, "allow-null"],
|
36
|
+
"no-array-constructor": 2,
|
37
|
+
"no-caller": 2,
|
38
|
+
"no-eval": 2,
|
39
|
+
"no-extend-native": 2,
|
40
|
+
"no-extra-bind": 2,
|
41
|
+
"no-fallthrough": 2,
|
42
|
+
"no-labels": 2,
|
43
|
+
"no-iterator": 2,
|
44
|
+
"no-magic-numbers": [1, {"ignore": [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]}],
|
45
|
+
"no-multi-spaces": 2,
|
46
|
+
"no-native-reassign": 2,
|
47
|
+
"no-new-func": 2,
|
48
|
+
"no-new-wrappers": 2,
|
49
|
+
"no-new": 2,
|
50
|
+
"no-octal-escape": 2,
|
51
|
+
"no-octal": 2,
|
52
|
+
"no-redeclare": 2,
|
53
|
+
"no-self-compare": 2,
|
54
|
+
"no-sequences": 2,
|
55
|
+
"no-unused-expressions": 2,
|
56
|
+
"no-useless-call": 2,
|
57
|
+
"no-warning-comments": [1, {"terms": ["todo", "fixme", "xxx"], "location": "start"}],
|
58
|
+
"no-with": 2,
|
59
|
+
"new-parens": 2,
|
60
|
+
"wrap-iife": [2, "inside"],
|
61
|
+
"no-catch-shadow": 2,
|
62
|
+
"no-delete-var": 2,
|
63
|
+
"no-shadow-restricted-names": 2,
|
64
|
+
"no-undef": 2,
|
65
|
+
"callback-return": 2,
|
66
|
+
"handle-callback-err": 2,
|
67
|
+
"no-path-concat": 2,
|
68
|
+
"array-bracket-spacing": 2,
|
69
|
+
"eol-last": 2,
|
70
|
+
"no-multiple-empty-lines": [2, {"max": 2}],
|
71
|
+
"no-spaced-func": 2,
|
72
|
+
"no-trailing-spaces": 2,
|
73
|
+
"no-unneeded-ternary": 2,
|
74
|
+
"keyword-spacing": 2,
|
75
|
+
"space-before-blocks": 2,
|
76
|
+
"space-before-function-paren": [2, "never"],
|
77
|
+
"space-in-parens": 2,
|
78
|
+
"space-unary-ops": [2, {"words": true, "nonwords": false}],
|
79
|
+
"arrow-spacing": [2, {"before": true, "after": true}],
|
80
|
+
"prefer-arrow-callback": 2,
|
81
|
+
"prefer-template": 0,
|
82
|
+
"prefer-const": 2
|
83
|
+
}
|
84
|
+
}
|
data/node_package/package.json
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "breakfast-rails",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.8",
|
4
4
|
"description": "Assets for the Breakfast Gem",
|
5
5
|
"main": "./lib/breakfast-rails.js",
|
6
6
|
"scripts": {
|
7
|
-
"test": "
|
7
|
+
"test": "eslint index.js src",
|
8
8
|
"prepublish": "node_modules/babel-cli/bin/babel.js src --out-dir lib"
|
9
9
|
},
|
10
10
|
"author": "Patrick Koperwas",
|
@@ -15,7 +15,8 @@
|
|
15
15
|
"devDependencies": {
|
16
16
|
"babel-cli": "^6.10.1",
|
17
17
|
"babel-core": "^6.10.4",
|
18
|
-
"babel-preset-es2015": "^6.9.0"
|
18
|
+
"babel-preset-es2015": "^6.9.0",
|
19
|
+
"eslint": "^2.4.0"
|
19
20
|
},
|
20
21
|
"babel": {
|
21
22
|
"presets": ["es2015"]
|
@@ -1,10 +1,11 @@
|
|
1
|
-
|
1
|
+
const LiveReloader = require('./live-reload');
|
2
2
|
|
3
|
-
|
3
|
+
const BreakfastRails = {
|
4
4
|
init(options = {}) {
|
5
|
-
|
6
|
-
liveReloader.init(options)
|
5
|
+
const liveReloader = new LiveReloader();
|
6
|
+
liveReloader.init(options);
|
7
7
|
}
|
8
|
-
}
|
8
|
+
};
|
9
9
|
|
10
10
|
module.exports = BreakfastRails;
|
11
|
+
|
@@ -2,60 +2,64 @@ const ActionCable = require('actioncable');
|
|
2
2
|
|
3
3
|
class LiveReloader {
|
4
4
|
buildFreshUrl(url) {
|
5
|
-
|
5
|
+
const date = Math.round(Date.now() / 1000).toString();
|
6
6
|
url = url.replace(/(\&|\\?)version=\d*/, '');
|
7
7
|
|
8
|
-
return(`${url}${(url.indexOf('?') >= 0 ? '&' : '?')}version=${date}`);
|
8
|
+
return (`${url}${(url.indexOf('?') >= 0 ? '&' : '?')}version=${date}`);
|
9
9
|
}
|
10
10
|
|
11
11
|
cssReload(strategy) {
|
12
|
-
switch(strategy) {
|
13
|
-
case
|
14
|
-
|
12
|
+
switch (strategy) {
|
13
|
+
case 'hot':
|
14
|
+
const reloadableLinkElements = window.top.document.querySelectorAll(
|
15
15
|
'link[rel=stylesheet]:not([data-no-reload]):not([data-pending-removal])'
|
16
16
|
);
|
17
17
|
|
18
18
|
[].slice
|
19
19
|
.call(reloadableLinkElements)
|
20
20
|
.filter(link => link.href)
|
21
|
-
.forEach(link => link.href = this.buildFreshUrl(link.href))
|
21
|
+
.forEach(link => link.href = this.buildFreshUrl(link.href));
|
22
22
|
|
23
23
|
// Repaint
|
24
|
-
|
24
|
+
const browser = navigator.userAgent.toLowerCase();
|
25
|
+
|
26
|
+
if (browser.indexOf('chrome') > -1) {
|
27
|
+
setTimeout(() => { document.body.offsetHeight; }, 25);
|
28
|
+
}
|
25
29
|
break;
|
26
|
-
case
|
30
|
+
case 'page':
|
27
31
|
window.top.location.reload();
|
28
32
|
break;
|
29
|
-
case
|
33
|
+
case 'off':
|
30
34
|
break;
|
31
35
|
}
|
32
36
|
}
|
33
37
|
|
34
38
|
jsReload(strategy) {
|
35
|
-
switch(strategy) {
|
36
|
-
case
|
39
|
+
switch (strategy) {
|
40
|
+
case 'page':
|
37
41
|
window.top.location.reload();
|
38
42
|
break;
|
39
|
-
case
|
43
|
+
case 'off':
|
40
44
|
break;
|
41
45
|
}
|
42
46
|
}
|
43
47
|
|
44
48
|
htmlReload(strategy) {
|
45
|
-
switch(strategy) {
|
46
|
-
case
|
47
|
-
|
49
|
+
switch (strategy) {
|
50
|
+
case 'turbolinks':
|
51
|
+
const location = window.top.location;
|
48
52
|
|
49
|
-
if(typeof Turbolinks
|
50
|
-
Turbolinks.visit(location)
|
53
|
+
if (typeof Turbolinks !== 'undefined') {
|
54
|
+
Turbolinks.visit(location);
|
51
55
|
} else {
|
52
56
|
location.reload();
|
53
57
|
}
|
54
58
|
break;
|
55
|
-
case
|
59
|
+
case 'page':
|
56
60
|
window.top.location.reload();
|
57
61
|
break;
|
58
|
-
case
|
62
|
+
case 'off':
|
59
63
|
break;
|
60
64
|
}
|
61
65
|
}
|
@@ -65,21 +69,21 @@ class LiveReloader {
|
|
65
69
|
js: this.jsReload.bind(this),
|
66
70
|
css: this.cssReload.bind(this),
|
67
71
|
html: this.htmlReload.bind(this)
|
68
|
-
}
|
72
|
+
};
|
69
73
|
|
70
74
|
document.addEventListener('DOMContentLoaded', () => {
|
71
|
-
|
72
|
-
Breakfast.options = options
|
75
|
+
const Breakfast = window.Breakfast || {};
|
76
|
+
Breakfast.options = options;
|
73
77
|
|
74
|
-
|
78
|
+
const reloadChannel = 'Breakfast::LiveReloadChannel';
|
75
79
|
|
76
80
|
Breakfast.cable = ActionCable.createConsumer(`ws://${options.host}:${options.port}/cable`);
|
77
81
|
Breakfast.channel = Breakfast.cable.subscriptions.create(reloadChannel, {
|
78
82
|
received: (data) => {
|
79
|
-
|
83
|
+
const reloader = reloaders[data.extension];
|
80
84
|
reloader(options.reloadStrategies[data.extension]);
|
81
85
|
}
|
82
|
-
})
|
86
|
+
});
|
83
87
|
});
|
84
88
|
}
|
85
89
|
}
|
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.0.
|
4
|
+
version: 0.0.7
|
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-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- lib/generators/breakfast/templates/brunch-config.js
|
124
124
|
- lib/generators/breakfast/templates/initialize.js
|
125
125
|
- lib/generators/breakfast/templates/package.json
|
126
|
+
- node_package/.eslintrc.json
|
126
127
|
- node_package/.npmignore
|
127
128
|
- node_package/package.json
|
128
129
|
- node_package/src/breakfast-rails.js
|