ghost_in_the_post 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ghost_in_the_post.rb +5 -0
- data/lib/ghost_in_the_post/js_inline.rb +91 -0
- data/lib/ghost_in_the_post/phantom/staticize.js +4 -18
- data/lib/ghost_in_the_post/phantom_transform.rb +12 -75
- data/lib/ghost_in_the_post/version.rb +1 -1
- data/spec/dummy/Gemfile +1 -1
- data/spec/dummy/Gemfile.lock +40 -31
- data/spec/dummy/app/assets/javascripts/test.js +4 -1
- data/spec/dummy/app/mailers/auto_mailer.rb +0 -1
- data/spec/dummy/app/views/auto_mailer/normal_email.html.erb +2 -3
- data/spec/dummy/config/initializers/ghost_in_the_post.rb +1 -1
- data/spec/dummy/log/development.log +136 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-k4_XP2RpcjsXdbEn6qBsAPpql3gQiE93Y8QOMuVfs0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/48z_eOfEjcUZbqRkitvPcQWh7Hn-hgxue7ekRBojr9g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/86v25E0xnwy001YHLw8LduVEdijax96aorQrr3yJGJI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8qvOy3VZFmkwGRCIuLzhSIYOcVtu6GpZIn6bPPcZWi8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E9yiq0UWmLGIt128qFot0ShF2tKgQYbUVL1KyYdGlp4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ek5gIbxd0Jy0_2XTxSft3tXuZ_-qEvr3I-AcVimfTNI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FDIcBN4OBSwV2FMgpvgdfhAZC-ycsr1PkaDrhR0YKXg.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fbiaq-Rp0eB0J2fCwImvqWSXj8Am1O_hHZvRxgWSj58.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp7UGnWnNp4rKy5hCYvl9BsVHhctx-av-AYy7Wyz7CI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Oe5LRDH7di4WOiG-W-7zoXnP0Bv3hXzjKzRNdKBtCQI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nFA3G3IroEqp51ggoqBK44-rTfddnvGQGGkyP8nV_LA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/s1fl9hrCR2SoMMkQWHyodwUJwS1iP6oNdK1WU-3I-QA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w6JX5zWN8vK4afiR4ib5M9nD0_1jiLPfUiWYu5k7pVQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xEPwyXpA7w7L0dn1hl5TQXVeRaJmX7MX6yxu4kMCfvU.cache +0 -0
- data/spec/lib/ghost_in_the_post/js_inline_spec.rb +62 -0
- data/spec/lib/ghost_in_the_post/phantom_transform_spec.rb +17 -64
- metadata +48 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94da021e6f8b23bd606f975de8e4130d6a776a9d
|
4
|
+
data.tar.gz: 9f8cd6d8aea34ece07434229d84ca35388bfde5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0edf5ce3439fd879eb666ca6dd0491e83fbde0c591ec63eb25c2b191aa92e25b721e3072f592e4912f0101a8cc5cc0172f0ab6988b33316612ea1bb6fc3c681c
|
7
|
+
data.tar.gz: d279fb5c28e64647262a967b8189daa03cd8540ccc3d02c3d99eeaa81ae3a8c59061bfe6b9ca115d05de7a2aa1d6129aa43f6fd17e3862b849bb1b5ed887dade
|
data/lib/ghost_in_the_post.rb
CHANGED
@@ -6,17 +6,20 @@ module GhostInThePost
|
|
6
6
|
:remove_js_tags,
|
7
7
|
:timeout,
|
8
8
|
:wait_event,
|
9
|
+
:debug,
|
9
10
|
]
|
10
11
|
DEFAULT_TIMEOUT = 1000
|
11
12
|
DEFAULT_WAIT_EVENT = "ghost_in_the_post:done"
|
12
13
|
private_constant :ATTRIBUTE_NAMES
|
13
14
|
cattr_reader(*ATTRIBUTE_NAMES)
|
14
15
|
|
16
|
+
#defaults
|
15
17
|
@@phantomjs_path = nil #setting this to nil helps testing
|
16
18
|
@@timeout = DEFAULT_TIMEOUT
|
17
19
|
@@wait_event = DEFAULT_WAIT_EVENT
|
18
20
|
@@includes = []
|
19
21
|
@@remove_js_tags = true
|
22
|
+
@@debug = false
|
20
23
|
|
21
24
|
def self.config=(new_config={})
|
22
25
|
self.complain_about_unknown_keys(new_config.keys)
|
@@ -25,6 +28,7 @@ module GhostInThePost
|
|
25
28
|
@@remove_js_tags = new_config[:remove_js_tags].nil? ? true : new_config[:remove_js_tags]
|
26
29
|
@@timeout = new_config[:timeout] || DEFAULT_TIMEOUT
|
27
30
|
@@wait_event = new_config[:wait_event] || DEFAULT_WAIT_EVENT
|
31
|
+
@@debug = new_config[:debug].nil? ? false : new_config[:debug]
|
28
32
|
raise ArgumentError, "GhostInThePost.config.phantomjs_path is not set" if self.phantomjs_path.nil?
|
29
33
|
end
|
30
34
|
|
@@ -45,6 +49,7 @@ end
|
|
45
49
|
|
46
50
|
require "ghost_in_the_post/version"
|
47
51
|
|
52
|
+
require "ghost_in_the_post/js_inline"
|
48
53
|
require "ghost_in_the_post/phantom_transform"
|
49
54
|
require "ghost_in_the_post/mail_ghost"
|
50
55
|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module GhostInThePost
|
4
|
+
|
5
|
+
class AssetNotFoundError < StandardError; end
|
6
|
+
|
7
|
+
class JsInline
|
8
|
+
|
9
|
+
def initialize(html, included_scripts=[])
|
10
|
+
self.html = html
|
11
|
+
@included_scripts = Array(included_scripts).compact
|
12
|
+
end
|
13
|
+
|
14
|
+
def inline
|
15
|
+
create_script_element(generate_flat_js, @dom.at_xpath('html/body'))
|
16
|
+
end
|
17
|
+
|
18
|
+
def remove_all_script
|
19
|
+
@dom.css('script').map(&:remove)
|
20
|
+
end
|
21
|
+
|
22
|
+
def html=(html)
|
23
|
+
@dom = Nokogiri::HTML.parse(html)
|
24
|
+
end
|
25
|
+
|
26
|
+
def html
|
27
|
+
@dom.to_html
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def create_script_element(script_blocks, body)
|
33
|
+
return unless body
|
34
|
+
element = Nokogiri::XML::Node.new("script", body.document)
|
35
|
+
element.content = script_blocks.join("\n")
|
36
|
+
body.add_child(element)
|
37
|
+
end
|
38
|
+
|
39
|
+
def generate_flat_js
|
40
|
+
injectable_scripts.map do |script|
|
41
|
+
asset = find_asset_in_pipeline(script)
|
42
|
+
if GhostInThePost.debug and asset.nil?
|
43
|
+
raise AssetNotFoundError.new("cannot find asset #{normalize_asset_name(script)}")
|
44
|
+
end
|
45
|
+
asset.to_s unless asset.nil?
|
46
|
+
end.compact
|
47
|
+
end
|
48
|
+
|
49
|
+
def injectable_scripts
|
50
|
+
doc_scripts = @dom.css('script').map do |script_node|
|
51
|
+
src = script_node['src']
|
52
|
+
script_node.remove unless src.nil?
|
53
|
+
src
|
54
|
+
end.compact
|
55
|
+
doc_scripts + GhostInThePost.includes + @included_scripts
|
56
|
+
end
|
57
|
+
|
58
|
+
def find_asset_in_pipeline(name)
|
59
|
+
normalized_name = normalize_asset_name(name)
|
60
|
+
Rails.application.assets[normalized_name] || Rails.application.assets[remove_asset_digest(normalized_name)]
|
61
|
+
end
|
62
|
+
|
63
|
+
def normalize_asset_name(href)
|
64
|
+
remove_asset_prefix(href.split('?').first)
|
65
|
+
end
|
66
|
+
|
67
|
+
DIGEST_PATTERN = /
|
68
|
+
- # Digest comes after a dash
|
69
|
+
(?:
|
70
|
+
[a-z0-9]{32} | # Old style is 32 character hash
|
71
|
+
[a-z0-9]{64} # New style is 64 characters
|
72
|
+
)
|
73
|
+
\. # Dot for the file extension
|
74
|
+
/x.freeze
|
75
|
+
|
76
|
+
def remove_asset_digest(path)
|
77
|
+
path.gsub(DIGEST_PATTERN, '.')
|
78
|
+
end
|
79
|
+
|
80
|
+
def remove_asset_prefix(path)
|
81
|
+
path.sub(Regexp.new("^#{Regexp.quote(asset_prefix)}/?"), "")
|
82
|
+
end
|
83
|
+
|
84
|
+
def asset_prefix
|
85
|
+
::Rails.application.try(:config).try(:assets).try(:prefix) || "/assets"
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
@@ -1,9 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
var system = require('system'),
|
3
3
|
page = require('webpage').create(),
|
4
|
-
|
5
|
-
no_script = system.args[2] == "true",
|
6
|
-
include = system.args[3], //tmp file for the injected js file
|
4
|
+
html = system.args[1], //tmp file of the html to be processed
|
7
5
|
timeout = parseInt(system.args[4]) || 1000, //return page contents after a timeout
|
8
6
|
wait_event = system.args[5], //return page contents after an event
|
9
7
|
error_tag = "[GHOSTINTHEPOST-STATICIZE-ERROR]";
|
@@ -29,7 +27,7 @@ page.onError = function(msg, trace) {
|
|
29
27
|
if (trace && trace.length) {
|
30
28
|
msgStack.push('TRACE:');
|
31
29
|
trace.forEach(function(t) {
|
32
|
-
msgStack.push(
|
30
|
+
msgStack.push(t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
|
33
31
|
});
|
34
32
|
}
|
35
33
|
console.error(msgStack.join('\n'));
|
@@ -42,22 +40,10 @@ page.onLoadFinished = function(status){
|
|
42
40
|
page.evaluate(function(finish, wait_event) {
|
43
41
|
document.addEventListener(wait_event, window.callPhantom, false)
|
44
42
|
}, finish, wait_event)
|
45
|
-
//clear script tags
|
46
|
-
if(no_script) {
|
47
|
-
page.evaluate(function(){
|
48
|
-
var script_tags = document.getElementsByTagName("script");
|
49
|
-
for(var i = 0; i < script_tags.length; i++) {
|
50
|
-
script_tags[i].parentNode.removeChild(script_tags[i]);
|
51
|
-
}
|
52
|
-
})
|
53
|
-
}
|
54
|
-
//load included scripts to be loaded on the dom
|
55
|
-
if(!!include){
|
56
|
-
page.injectJs(include);
|
57
|
-
}
|
58
43
|
if(timeout > 0){
|
59
44
|
setTimeout(finish, timeout);//timout to bailout after a period
|
60
45
|
}
|
61
46
|
};
|
62
47
|
|
63
|
-
|
48
|
+
//load html content
|
49
|
+
page.setContent(html, 'ghost_in_the_post');
|
@@ -1,103 +1,40 @@
|
|
1
1
|
module GhostInThePost
|
2
2
|
|
3
|
-
class
|
3
|
+
class GhostJSError < StandardError; end
|
4
4
|
|
5
5
|
class PhantomTransform
|
6
6
|
PHANTOMJS_SCRIPT = File.expand_path('../phantom/staticize.js', __FILE__)
|
7
7
|
ERROR_TAG = "[GHOSTINTHEPOST-STATICIZE-ERROR]"
|
8
8
|
|
9
|
-
def initialize(html, timeout=nil, wait_event=nil, included_scripts=
|
10
|
-
@
|
9
|
+
def initialize(html, timeout=nil, wait_event=nil, included_scripts=nil)
|
10
|
+
@inliner = JsInline.new(html, included_scripts)
|
11
11
|
@timeout = timeout || GhostInThePost.timeout
|
12
12
|
@wait_event = wait_event || GhostInThePost.wait_event
|
13
|
-
@included_scripts = Array(included_scripts).compact
|
14
13
|
end
|
15
14
|
|
16
15
|
def transform
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
checkError(output)
|
23
|
-
ensure
|
24
|
-
htmlfile.unlink unless htmlfile.nil?
|
25
|
-
jsfile.unlink unless jsfile.nil?
|
26
|
-
end
|
27
|
-
output
|
16
|
+
@inliner.inline
|
17
|
+
p @inliner.html if GhostInThePost.debug
|
18
|
+
@inliner.html = checkError(IO.popen(command){|io| io.read})
|
19
|
+
@inliner.remove_all_script if GhostInThePost.remove_js_tags
|
20
|
+
@inliner.html
|
28
21
|
end
|
29
22
|
|
30
23
|
private
|
31
24
|
|
32
|
-
def command
|
25
|
+
def command
|
33
26
|
[
|
34
27
|
GhostInThePost.phantomjs_path,
|
35
28
|
PHANTOMJS_SCRIPT,
|
36
|
-
|
37
|
-
GhostInThePost.remove_js_tags,
|
38
|
-
jsfile.path,
|
29
|
+
@inliner.html,
|
39
30
|
@timeout,
|
40
31
|
@wait_event,
|
41
32
|
].map(&:to_s)
|
42
33
|
end
|
43
34
|
|
44
|
-
#generate a tempfile with all the html that we need so that phantom can inject
|
45
|
-
#easily and not have to max out a single command
|
46
|
-
def html_file
|
47
|
-
file = Tempfile.new(['inject', '.html'])
|
48
|
-
file.write(@html)
|
49
|
-
file.close #closing the file makes it accessible by phantom
|
50
|
-
file
|
51
|
-
end
|
52
|
-
|
53
|
-
#generate a tempfile with all the js that we need so that phantom can inject
|
54
|
-
#easily and not have to max out a single command
|
55
|
-
def js_file
|
56
|
-
jsfile = Tempfile.new(['inject', '.js'])
|
57
|
-
injectable_scripts.map do |script|
|
58
|
-
asset = find_asset_in_pipeline(script)
|
59
|
-
jsfile.write(asset.to_s) unless asset.nil?
|
60
|
-
end.compact
|
61
|
-
jsfile.close #closing the file makes it accessible by phantom
|
62
|
-
jsfile
|
63
|
-
end
|
64
|
-
|
65
|
-
def injectable_scripts
|
66
|
-
@injectable_scripts ||= (GhostInThePost.includes + @included_scripts)
|
67
|
-
end
|
68
|
-
|
69
|
-
def find_asset_in_pipeline(name)
|
70
|
-
normalized_name = normalize_asset_name(name)
|
71
|
-
Rails.application.assets[normalized_name] || Rails.application.assets[remove_asset_digest(normalized_name)]
|
72
|
-
end
|
73
|
-
|
74
|
-
def normalize_asset_name(href)
|
75
|
-
remove_asset_prefix(href.split('?').first)
|
76
|
-
end
|
77
|
-
|
78
|
-
DIGEST_PATTERN = /
|
79
|
-
- # Digest comes after a dash
|
80
|
-
(?:
|
81
|
-
[a-z0-9]{32} | # Old style is 32 character hash
|
82
|
-
[a-z0-9]{64} # New style is 64 characters
|
83
|
-
)
|
84
|
-
\. # Dot for the file extension
|
85
|
-
/x.freeze
|
86
|
-
|
87
|
-
def remove_asset_digest(path)
|
88
|
-
path.gsub(DIGEST_PATTERN, '.')
|
89
|
-
end
|
90
|
-
|
91
|
-
def remove_asset_prefix(path)
|
92
|
-
path.sub(Regexp.new("^#{Regexp.quote(asset_prefix)}/?"), "")
|
93
|
-
end
|
94
|
-
|
95
|
-
def asset_prefix
|
96
|
-
::Rails.application.try(:config).try(:assets).try(:prefix) || "/assets"
|
97
|
-
end
|
98
|
-
|
99
35
|
def checkError output
|
100
|
-
raise
|
36
|
+
raise GhostJSError.new(output.gsub(ERROR_TAG, "")) if output.start_with?(ERROR_TAG)
|
37
|
+
output
|
101
38
|
end
|
102
39
|
|
103
40
|
end
|
data/spec/dummy/Gemfile
CHANGED
data/spec/dummy/Gemfile.lock
CHANGED
@@ -1,42 +1,43 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../..
|
3
3
|
specs:
|
4
|
-
ghost_in_the_post (0.0.
|
4
|
+
ghost_in_the_post (0.0.5)
|
5
|
+
nokogiri
|
5
6
|
rails (~> 4.2.3)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
9
10
|
specs:
|
10
|
-
actionmailer (4.2.
|
11
|
-
actionpack (= 4.2.
|
12
|
-
actionview (= 4.2.
|
13
|
-
activejob (= 4.2.
|
11
|
+
actionmailer (4.2.4)
|
12
|
+
actionpack (= 4.2.4)
|
13
|
+
actionview (= 4.2.4)
|
14
|
+
activejob (= 4.2.4)
|
14
15
|
mail (~> 2.5, >= 2.5.4)
|
15
16
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
16
|
-
actionpack (4.2.
|
17
|
-
actionview (= 4.2.
|
18
|
-
activesupport (= 4.2.
|
17
|
+
actionpack (4.2.4)
|
18
|
+
actionview (= 4.2.4)
|
19
|
+
activesupport (= 4.2.4)
|
19
20
|
rack (~> 1.6)
|
20
21
|
rack-test (~> 0.6.2)
|
21
22
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
22
23
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
23
|
-
actionview (4.2.
|
24
|
-
activesupport (= 4.2.
|
24
|
+
actionview (4.2.4)
|
25
|
+
activesupport (= 4.2.4)
|
25
26
|
builder (~> 3.1)
|
26
27
|
erubis (~> 2.7.0)
|
27
28
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
28
29
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
29
|
-
activejob (4.2.
|
30
|
-
activesupport (= 4.2.
|
30
|
+
activejob (4.2.4)
|
31
|
+
activesupport (= 4.2.4)
|
31
32
|
globalid (>= 0.3.0)
|
32
|
-
activemodel (4.2.
|
33
|
-
activesupport (= 4.2.
|
33
|
+
activemodel (4.2.4)
|
34
|
+
activesupport (= 4.2.4)
|
34
35
|
builder (~> 3.1)
|
35
|
-
activerecord (4.2.
|
36
|
-
activemodel (= 4.2.
|
37
|
-
activesupport (= 4.2.
|
36
|
+
activerecord (4.2.4)
|
37
|
+
activemodel (= 4.2.4)
|
38
|
+
activesupport (= 4.2.4)
|
38
39
|
arel (~> 6.0)
|
39
|
-
activesupport (4.2.
|
40
|
+
activesupport (4.2.4)
|
40
41
|
i18n (~> 0.7)
|
41
42
|
json (~> 1.7, >= 1.7.7)
|
42
43
|
minitest (~> 5.1)
|
@@ -48,6 +49,7 @@ GEM
|
|
48
49
|
concurrent-ruby (1.0.0)
|
49
50
|
concurrent-ruby (1.0.0-java)
|
50
51
|
erubis (2.7.0)
|
52
|
+
ffi (1.9.10-java)
|
51
53
|
globalid (0.3.6)
|
52
54
|
activesupport (>= 4.1.0)
|
53
55
|
i18n (0.7.0)
|
@@ -68,19 +70,24 @@ GEM
|
|
68
70
|
coderay (~> 1.1.0)
|
69
71
|
method_source (~> 0.8.1)
|
70
72
|
slop (~> 3.4)
|
73
|
+
pry (0.10.3-java)
|
74
|
+
coderay (~> 1.1.0)
|
75
|
+
method_source (~> 0.8.1)
|
76
|
+
slop (~> 3.4)
|
77
|
+
spoon (~> 0.0)
|
71
78
|
rack (1.6.4)
|
72
79
|
rack-test (0.6.3)
|
73
80
|
rack (>= 1.0)
|
74
|
-
rails (4.2.
|
75
|
-
actionmailer (= 4.2.
|
76
|
-
actionpack (= 4.2.
|
77
|
-
actionview (= 4.2.
|
78
|
-
activejob (= 4.2.
|
79
|
-
activemodel (= 4.2.
|
80
|
-
activerecord (= 4.2.
|
81
|
-
activesupport (= 4.2.
|
81
|
+
rails (4.2.4)
|
82
|
+
actionmailer (= 4.2.4)
|
83
|
+
actionpack (= 4.2.4)
|
84
|
+
actionview (= 4.2.4)
|
85
|
+
activejob (= 4.2.4)
|
86
|
+
activemodel (= 4.2.4)
|
87
|
+
activerecord (= 4.2.4)
|
88
|
+
activesupport (= 4.2.4)
|
82
89
|
bundler (>= 1.3.0, < 2.0)
|
83
|
-
railties (= 4.2.
|
90
|
+
railties (= 4.2.4)
|
84
91
|
sprockets-rails
|
85
92
|
rails-deprecated_sanitizer (1.0.3)
|
86
93
|
activesupport (>= 4.2.0.alpha)
|
@@ -90,13 +97,15 @@ GEM
|
|
90
97
|
rails-deprecated_sanitizer (>= 1.0.1)
|
91
98
|
rails-html-sanitizer (1.0.3)
|
92
99
|
loofah (~> 2.0)
|
93
|
-
railties (4.2.
|
94
|
-
actionpack (= 4.2.
|
95
|
-
activesupport (= 4.2.
|
100
|
+
railties (4.2.4)
|
101
|
+
actionpack (= 4.2.4)
|
102
|
+
activesupport (= 4.2.4)
|
96
103
|
rake (>= 0.8.7)
|
97
104
|
thor (>= 0.18.1, < 2.0)
|
98
105
|
rake (10.5.0)
|
99
106
|
slop (3.6.0)
|
107
|
+
spoon (0.0.4)
|
108
|
+
ffi
|
100
109
|
sprockets (3.5.2)
|
101
110
|
concurrent-ruby (~> 1.0)
|
102
111
|
rack (> 1, < 3)
|
@@ -117,7 +126,7 @@ PLATFORMS
|
|
117
126
|
DEPENDENCIES
|
118
127
|
ghost_in_the_post!
|
119
128
|
pry
|
120
|
-
rails (= 4.2.
|
129
|
+
rails (= 4.2.4)
|
121
130
|
|
122
131
|
BUNDLED WITH
|
123
132
|
1.10.6
|
@@ -1,13 +1,12 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
|
5
|
-
//to be removed
|
6
|
-
</script>
|
4
|
+
<%= javascript_include_tag "application" %>
|
7
5
|
</head>
|
8
6
|
<body>
|
9
7
|
<span><%= "This makes sure it is preprocessed" %></span>
|
10
8
|
<div id="test"></div>
|
9
|
+
<script> //to be removed </script>
|
11
10
|
</body>
|
12
11
|
</html>
|
13
12
|
|
@@ -358,3 +358,139 @@ AutoMailer#normal_email: processed outbound mail in 13.5ms
|
|
358
358
|
Rendered auto_mailer/normal_email.text (0.1ms)
|
359
359
|
|
360
360
|
AutoMailer#normal_email: processed outbound mail in 14.9ms
|
361
|
+
Rendered auto_mailer/normal_email.html.erb (2.7ms)
|
362
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
363
|
+
|
364
|
+
AutoMailer#normal_email: processed outbound mail in 230.0ms
|
365
|
+
Rendered auto_mailer/normal_email.html.erb (2.0ms)
|
366
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
367
|
+
|
368
|
+
AutoMailer#normal_email: processed outbound mail in 236.0ms
|
369
|
+
Rendered auto_mailer/normal_email.html.erb (2.1ms)
|
370
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
371
|
+
|
372
|
+
AutoMailer#normal_email: processed outbound mail in 238.2ms
|
373
|
+
Rendered auto_mailer/normal_email.html.erb (1.9ms)
|
374
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
375
|
+
|
376
|
+
AutoMailer#normal_email: processed outbound mail in 232.7ms
|
377
|
+
Rendered auto_mailer/normal_email.html.erb (0.4ms)
|
378
|
+
Rendered auto_mailer/normal_email.text (0.0ms)
|
379
|
+
|
380
|
+
AutoMailer#normal_email: processed outbound mail in 13.7ms
|
381
|
+
Rendered auto_mailer/normal_email.html.erb (0.1ms)
|
382
|
+
Rendered auto_mailer/normal_email.text (0.0ms)
|
383
|
+
|
384
|
+
AutoMailer#normal_email: processed outbound mail in 13.7ms
|
385
|
+
Rendered auto_mailer/normal_email.html.erb (0.1ms)
|
386
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
387
|
+
|
388
|
+
AutoMailer#normal_email: processed outbound mail in 11.3ms
|
389
|
+
Rendered auto_mailer/normal_email.html.erb (1.9ms)
|
390
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
391
|
+
|
392
|
+
AutoMailer#normal_email: processed outbound mail in 225.6ms
|
393
|
+
Rendered auto_mailer/normal_email.html.erb (1.8ms)
|
394
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
395
|
+
|
396
|
+
AutoMailer#normal_email: processed outbound mail in 223.3ms
|
397
|
+
Rendered auto_mailer/normal_email.html.erb (223.9ms)
|
398
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
399
|
+
|
400
|
+
AutoMailer#normal_email: processed outbound mail in 508.1ms
|
401
|
+
Rendered auto_mailer/normal_email.html.erb (0.8ms)
|
402
|
+
Rendered auto_mailer/normal_email.text (0.0ms)
|
403
|
+
|
404
|
+
AutoMailer#normal_email: processed outbound mail in 10.1ms
|
405
|
+
Rendered auto_mailer/normal_email.html.erb (0.7ms)
|
406
|
+
Rendered auto_mailer/normal_email.text (0.1ms)
|
407
|
+
|
408
|
+
AutoMailer#normal_email: processed outbound mail in 13.4ms
|
409
|
+
Rendered auto_mailer/normal_email.html.erb (0.8ms)
|
410
|
+
Rendered auto_mailer/normal_email.text (0.0ms)
|
411
|
+
|
412
|
+
AutoMailer#normal_email: processed outbound mail in 10.0ms
|
413
|
+
Rendered auto_mailer/normal_email.html.erb (227.3ms)
|
414
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
415
|
+
|
416
|
+
AutoMailer#normal_email: processed outbound mail in 532.7ms
|
417
|
+
Rendered auto_mailer/normal_email.html.erb (233.3ms)
|
418
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
419
|
+
|
420
|
+
AutoMailer#normal_email: processed outbound mail in 509.7ms
|
421
|
+
Rendered auto_mailer/normal_email.html.erb (213.6ms)
|
422
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
423
|
+
|
424
|
+
AutoMailer#normal_email: processed outbound mail in 551.6ms
|
425
|
+
Rendered auto_mailer/normal_email.html.erb (207.8ms)
|
426
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
427
|
+
|
428
|
+
AutoMailer#normal_email: processed outbound mail in 518.4ms
|
429
|
+
Rendered auto_mailer/normal_email.html.erb (0.8ms)
|
430
|
+
Rendered auto_mailer/normal_email.text (0.1ms)
|
431
|
+
|
432
|
+
AutoMailer#normal_email: processed outbound mail in 13.3ms
|
433
|
+
Rendered auto_mailer/normal_email.html.erb (207.6ms)
|
434
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
435
|
+
|
436
|
+
AutoMailer#normal_email: processed outbound mail in 502.0ms
|
437
|
+
Rendered auto_mailer/normal_email.html.erb (200.1ms)
|
438
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
439
|
+
|
440
|
+
AutoMailer#normal_email: processed outbound mail in 483.3ms
|
441
|
+
Rendered auto_mailer/normal_email.html.erb (215.3ms)
|
442
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
443
|
+
|
444
|
+
AutoMailer#normal_email: processed outbound mail in 483.7ms
|
445
|
+
Rendered auto_mailer/normal_email.html.erb (1.1ms)
|
446
|
+
Rendered auto_mailer/normal_email.text (0.1ms)
|
447
|
+
|
448
|
+
AutoMailer#normal_email: processed outbound mail in 13.6ms
|
449
|
+
Rendered auto_mailer/normal_email.html.erb (202.1ms)
|
450
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
451
|
+
|
452
|
+
AutoMailer#normal_email: processed outbound mail in 472.0ms
|
453
|
+
Rendered auto_mailer/normal_email.html.erb (218.9ms)
|
454
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
455
|
+
|
456
|
+
AutoMailer#normal_email: processed outbound mail in 488.1ms
|
457
|
+
Rendered auto_mailer/normal_email.html.erb (243.7ms)
|
458
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
459
|
+
|
460
|
+
AutoMailer#normal_email: processed outbound mail in 557.8ms
|
461
|
+
Rendered auto_mailer/normal_email.html.erb (5.5ms)
|
462
|
+
Rendered auto_mailer/normal_email.text (0.1ms)
|
463
|
+
|
464
|
+
AutoMailer#normal_email: processed outbound mail in 17.8ms
|
465
|
+
Rendered auto_mailer/normal_email.html.erb (296.4ms)
|
466
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
467
|
+
|
468
|
+
AutoMailer#normal_email: processed outbound mail in 636.3ms
|
469
|
+
Rendered auto_mailer/normal_email.html.erb (236.0ms)
|
470
|
+
Rendered auto_mailer/normal_email.text (0.4ms)
|
471
|
+
|
472
|
+
AutoMailer#normal_email: processed outbound mail in 516.8ms
|
473
|
+
Rendered auto_mailer/normal_email.html.erb (204.1ms)
|
474
|
+
Rendered auto_mailer/normal_email.text (0.5ms)
|
475
|
+
|
476
|
+
AutoMailer#normal_email: processed outbound mail in 468.0ms
|
477
|
+
Rendered auto_mailer/normal_email.html.erb (207.7ms)
|
478
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
479
|
+
|
480
|
+
AutoMailer#normal_email: processed outbound mail in 506.0ms
|
481
|
+
Rendered auto_mailer/normal_email.html.erb (206.2ms)
|
482
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
483
|
+
|
484
|
+
AutoMailer#normal_email: processed outbound mail in 457.0ms
|
485
|
+
Rendered auto_mailer/normal_email.html.erb (205.6ms)
|
486
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
487
|
+
|
488
|
+
AutoMailer#normal_email: processed outbound mail in 454.9ms
|
489
|
+
Rendered auto_mailer/normal_email.html.erb (228.0ms)
|
490
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
491
|
+
|
492
|
+
AutoMailer#normal_email: processed outbound mail in 545.1ms
|
493
|
+
Rendered auto_mailer/normal_email.html.erb (220.5ms)
|
494
|
+
Rendered auto_mailer/normal_email.text (0.3ms)
|
495
|
+
|
496
|
+
AutoMailer#normal_email: processed outbound mail in 542.3ms
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-k4_XP2RpcjsXdbEn6qBsAPpql3gQiE93Y8QOMuVfs0.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/test.js?type=application/javascript&pipeline=self&id=00a7ad8f25580c7c162696b16ed8df1e6590663fab3e44c6faca84ce05936121:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/48z_eOfEjcUZbqRkitvPcQWh7Hn-hgxue7ekRBojr9g.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"~app/assets/javascripts/test.js?type=application/javascript&id=b01bd31c3010de05bd05fd89712251020e09b3fee05a074143c1bb18d75f95b8:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/86v25E0xnwy001YHLw8LduVEdijax96aorQrr3yJGJI.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�>:B�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8qvOy3VZFmkwGRCIuLzhSIYOcVtu6GpZIn6bPPcZWi8.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E9yiq0UWmLGIt128qFot0ShF2tKgQYbUVL1KyYdGlp4.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=22e6e8aae8435246a3382f4437575c60a353527db086760b608b593211c2103a:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FDIcBN4OBSwV2FMgpvgdfhAZC-ycsr1PkaDrhR0YKXg.cache
ADDED
@@ -0,0 +1,3 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{
|
3
|
+
I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"1file-digest://app/assets/javascripts/test.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TT
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fbiaq-Rp0eB0J2fCwImvqWSXj8Am1O_hHZvRxgWSj58.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�>:B�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp7UGnWnNp4rKy5hCYvl9BsVHhctx-av-AYy7Wyz7CI.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=7a2295d6b6cb7c3844378b9f0b1d2e1b0ffb99fa410564c6dd64335363529ef4:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Oe5LRDH7di4WOiG-W-7zoXnP0Bv3hXzjKzRNdKBtCQI.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=debug&id=c5079abe5689db2ecf07acb46a0e5f2d5c8c39d648056972e3979914ab70e36f:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI"[processors:type=application/javascript&file_type=application/javascript&pipeline=debug;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"1file-digest://app/assets/javascripts/test.js;TTI")file-digest://app/assets/javascripts;TT
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nFA3G3IroEqp51ggoqBK44-rTfddnvGQGGkyP8nV_LA.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/s1fl9hrCR2SoMMkQWHyodwUJwS1iP6oNdK1WU-3I-QA.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w6JX5zWN8vK4afiR4ib5M9nD0_1jiLPfUiWYu5k7pVQ.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xEPwyXpA7w7L0dn1hl5TQXVeRaJmX7MX6yxu4kMCfvU.cache
ADDED
Binary file
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module GhostInThePost
|
4
|
+
|
5
|
+
describe JsInline do
|
6
|
+
let(:html){"<html><head><script></script></head><body><div id='test'></div></body></html>"}
|
7
|
+
let(:html_without_script){"<html><head></head><body><div id='test'></div></body></html>"}
|
8
|
+
let(:js){"(function(){document.getElementById('test').innerHTML='complete';})()"}
|
9
|
+
let(:html_with_js){"<html><head><script></script></head><body><div id='test'></div><script>#{js}</script></body></html>"}
|
10
|
+
let(:included_scripts){["application.js"]}
|
11
|
+
subject {JsInline.new(html, included_scripts)}
|
12
|
+
|
13
|
+
describe "#initialize" do
|
14
|
+
it "should assign html" do
|
15
|
+
expect(Nokogiri::HTML).to receive(:parse)
|
16
|
+
JsInline.new(html, included_scripts)
|
17
|
+
end
|
18
|
+
it "should set included_scripts" do
|
19
|
+
ji = JsInline.new(html, included_scripts)
|
20
|
+
expect(ji.instance_variable_get(:@included_scripts)).to eq(included_scripts)
|
21
|
+
end
|
22
|
+
it "should default included_scripts to an array" do
|
23
|
+
ji = JsInline.new(html)
|
24
|
+
expect(ji.instance_variable_get(:@included_scripts)).to eq([])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#inline" do
|
29
|
+
before :each do
|
30
|
+
allow(subject).to receive(:find_asset_in_pipeline).with("application.js").and_return(js)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should inline js" do
|
34
|
+
subject.inline
|
35
|
+
expect(subject.html).to include(js)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#remove_all_script" do
|
40
|
+
it "should remove all js" do
|
41
|
+
subject.remove_all_script
|
42
|
+
expect(subject.html).not_to include("<script")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#html=" do
|
47
|
+
it "should parse the html" do
|
48
|
+
subject.html #initialize first so that it only receives once
|
49
|
+
expect(Nokogiri::HTML).to receive(:parse)
|
50
|
+
subject.html = ""
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#html" do
|
55
|
+
it "should return a string" do
|
56
|
+
expect(subject.html).to be_a(String)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -13,9 +13,10 @@ module GhostInThePost
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe "#initialize" do
|
16
|
-
it "should
|
17
|
-
|
18
|
-
|
16
|
+
it "should create a new JSInline" do
|
17
|
+
expect(JsInline).to receive(:new).with(html, included_scripts).and_call_original
|
18
|
+
t = PhantomTransform.new(html, nil, nil,included_scripts)
|
19
|
+
expect(t.instance_variable_get(:@inliner)).to be_a(JsInline)
|
19
20
|
end
|
20
21
|
it "should set the timeout" do
|
21
22
|
pt = PhantomTransform.new(html, 45, nil, included_scripts)
|
@@ -33,84 +34,36 @@ module GhostInThePost
|
|
33
34
|
pt = PhantomTransform.new(html, nil, nil, included_scripts)
|
34
35
|
expect(pt.instance_variable_get(:@wait_event)).to eq(GhostInThePost.wait_event)
|
35
36
|
end
|
36
|
-
it "should set included_scripts" do
|
37
|
-
pt = PhantomTransform.new(html, nil, nil, included_scripts)
|
38
|
-
expect(pt.instance_variable_get(:@included_scripts)).to eq(included_scripts)
|
39
|
-
end
|
40
|
-
it "should default included_scripts to an array" do
|
41
|
-
pt = PhantomTransform.new(html, nil, nil, nil)
|
42
|
-
expect(pt.instance_variable_get(:@included_scripts)).to eq([])
|
43
|
-
end
|
44
37
|
end
|
45
38
|
|
46
39
|
describe "#transform" do
|
47
|
-
let(:html_path) {"/this/is/htmlpath"}
|
48
|
-
let(:js_path) {"/this/is/js_path"}
|
49
|
-
|
50
40
|
before :each do
|
51
|
-
|
52
|
-
allow(
|
53
|
-
|
54
|
-
|
55
|
-
it "should create a temp file for the html" do
|
56
|
-
file = Object.new
|
57
|
-
expect(subject).to receive(:html_file){file}
|
58
|
-
allow(file).to receive(:path){html_path}
|
59
|
-
expect(file).to receive(:unlink)
|
60
|
-
subject.transform
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should create a temp file for the js" do
|
64
|
-
file = Object.new
|
65
|
-
expect(subject).to receive(:js_file){file}
|
66
|
-
allow(file).to receive(:path){js_path}
|
67
|
-
expect(file).to receive(:unlink)
|
68
|
-
subject.transform
|
41
|
+
@inliner = JsInline.new(html)
|
42
|
+
allow(@inliner).to receive(:inline)
|
43
|
+
allow(JsInline).to receive(:new){@inliner}
|
69
44
|
end
|
70
45
|
|
71
46
|
it "should call IO.popen with arguments" do
|
72
|
-
html_file = Object.new
|
73
|
-
expect(subject).to receive(:html_file){html_file}
|
74
|
-
allow(html_file).to receive(:path){html_path}
|
75
|
-
allow(html_file).to receive(:unlink)
|
76
|
-
|
77
|
-
js_file = Object.new
|
78
|
-
expect(subject).to receive(:js_file){js_file}
|
79
|
-
allow(js_file).to receive(:path){js_path}
|
80
|
-
allow(js_file).to receive(:unlink)
|
81
|
-
|
82
47
|
expect(IO).to receive(:popen).with([
|
83
48
|
GhostInThePost.phantomjs_path,
|
84
49
|
GhostInThePost::PhantomTransform::PHANTOMJS_SCRIPT,
|
85
|
-
|
86
|
-
GhostInThePost.remove_js_tags.to_s,
|
87
|
-
js_path,
|
50
|
+
@inliner.html,
|
88
51
|
"1000",
|
89
52
|
"ghost_in_the_post:done",
|
90
|
-
])
|
91
|
-
|
53
|
+
]).and_return html
|
92
54
|
subject.transform
|
93
55
|
end
|
94
56
|
|
95
|
-
it "should
|
96
|
-
allow(IO).to receive(:popen)
|
97
|
-
expect
|
57
|
+
it "should check if there is an error from phantom" do
|
58
|
+
allow(IO).to receive(:popen).and_return PhantomTransform::ERROR_TAG
|
59
|
+
expect{subject.transform}.to raise_error GhostJSError
|
98
60
|
end
|
99
61
|
|
100
|
-
it "should
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
js_file = Object.new
|
107
|
-
expect(subject).to receive(:js_file){js_file}
|
108
|
-
allow(js_file).to receive(:path){js_path}
|
109
|
-
expect(js_file).to receive(:unlink)
|
110
|
-
|
111
|
-
allow(IO).to receive(:popen) {raise ArgumentError}
|
112
|
-
|
113
|
-
expect{subject.transform}.to raise_error ArgumentError
|
62
|
+
it "should remove script tags if config set" do
|
63
|
+
GhostInThePost.config = {phantomjs_path: "this/is/path", remove_js_tags: true}
|
64
|
+
allow(IO).to receive(:popen).and_return ""
|
65
|
+
expect(@inliner).to receive(:remove_all_script)
|
66
|
+
subject.transform
|
114
67
|
end
|
115
68
|
|
116
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghost_in_the_post
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Anema
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.2.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,7 @@ files:
|
|
80
94
|
- lib/ghost_in_the_post/automatic.rb
|
81
95
|
- lib/ghost_in_the_post/ghost_on_command.rb
|
82
96
|
- lib/ghost_in_the_post/ghost_on_delivery.rb
|
97
|
+
- lib/ghost_in_the_post/js_inline.rb
|
83
98
|
- lib/ghost_in_the_post/mail_ghost.rb
|
84
99
|
- lib/ghost_in_the_post/mailer.rb
|
85
100
|
- lib/ghost_in_the_post/phantom/staticize.js
|
@@ -117,29 +132,39 @@ files:
|
|
117
132
|
- spec/dummy/config/secrets.yml
|
118
133
|
- spec/dummy/log/development.log
|
119
134
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/-4Tacd2aNU9g47XY4TSmQEnf1ef5LjeSZqNrE3qS-4I.cache
|
135
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/-k4_XP2RpcjsXdbEn6qBsAPpql3gQiE93Y8QOMuVfs0.cache
|
120
136
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/1hVihiFdBkDBsuCvA1I2vuFa9N6p-5zQ-qKvf4vz7jA.cache
|
121
137
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/23mzeUAO-pIzGJ1n84Dbg25udWeSiBcd6e_QsDihWQc.cache
|
122
138
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2ONadWXZXepGMP-_rM4RSH-lrRkYGc5TIH-U0uN8lG0.cache
|
123
139
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2it6AcrJYWU_rid4KTQQbQUlk6yrL99umLdDkl-bjhs.cache
|
124
140
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/438pUuXODQhzKPoJXcOlag9NCWp0HKhWhda1SqP2un0.cache
|
141
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/48z_eOfEjcUZbqRkitvPcQWh7Hn-hgxue7ekRBojr9g.cache
|
125
142
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4PgfVpd4CZQ0vAsVTl2KDb1z4f6GLl4mXIc3jSrahHM.cache
|
126
143
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4rPkFN0RbHFjbJe16_XepVFLtiWqn50qNpKLhKryqpE.cache
|
127
144
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/6544SZAu2zCeDrdro4h3izdKNXVvHzstwz12UxeiJoA.cache
|
128
145
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/6wWiAXBcdY6PLKOIhXQ6c8h9UtViuvdLcEO6wXK3mh0.cache
|
146
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/86v25E0xnwy001YHLw8LduVEdijax96aorQrr3yJGJI.cache
|
147
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8qvOy3VZFmkwGRCIuLzhSIYOcVtu6GpZIn6bPPcZWi8.cache
|
129
148
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/AQYzgZ6xktowc8IFU5QCD16twvaTpVL3fTm5GAcMIcQ.cache
|
130
149
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/BMI0IB92xLhvUPcr_K0JuSk8zczmrEEbJCd3qwHauhQ.cache
|
131
150
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/CLll3B8DlG_2J0DLaC2sufKgEn_AmpxRV3x68HKgzOo.cache
|
151
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/E9yiq0UWmLGIt128qFot0ShF2tKgQYbUVL1KyYdGlp4.cache
|
132
152
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Egcuj59mzXoDA4ZZ-fxt2CnFiU3NSBaSmw4Zyrtv5gE.cache
|
153
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ek5gIbxd0Jy0_2XTxSft3tXuZ_-qEvr3I-AcVimfTNI.cache
|
133
154
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/EnUqN5N9ByzTXeKLQFjWdnXsXrkrw-FEQ1GxfS9eacg.cache
|
155
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/FDIcBN4OBSwV2FMgpvgdfhAZC-ycsr1PkaDrhR0YKXg.cache
|
134
156
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/FV_wDshDLBMnnkMa1Hc-Oel63UD1ZrLXpKxyXh4Girw.cache
|
157
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Fbiaq-Rp0eB0J2fCwImvqWSXj8Am1O_hHZvRxgWSj58.cache
|
135
158
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/GtqgDsC0JMsKfj0x5uQrbPcSS3QIPIzLKrq2fGJDBf0.cache
|
136
159
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/IFLV6zTaBXU1ccodbD3QJ4xUIOEix_Fbb7j8wsxrHw8.cache
|
137
160
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/J_D4gpddr1KPVysTvEE48iHsNzrL5Pbj8S5ZNt3PhA4.cache
|
138
161
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lc8lcXR-AibSZCIbx_imdfIOmD-zbZ_pwSNMs0o0Dos.cache
|
139
162
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LvFfmsQjA0Dz1yL2mkUst9LnQQt2IGRaQrP_tLihwTg.cache
|
163
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp7UGnWnNp4rKy5hCYvl9BsVHhctx-av-AYy7Wyz7CI.cache
|
140
164
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/O9gjtBITAGlfzUwc2DT5N0GW2bo2b2yQ64gnQljLogM.cache
|
141
165
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/OQXwnC5z5STtd87Tr2dz1QBt4iZ8PoZTH8KBtBlUGnE.cache
|
142
166
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/OZ04c215C4Euu3scfhmxmte0o_tZOVWTqrv61cpy7H4.cache
|
167
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Oe5LRDH7di4WOiG-W-7zoXnP0Bv3hXzjKzRNdKBtCQI.cache
|
143
168
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Q5jtbm8IDgytmUYx2yDM4wdqpIeUGokl32mrR0IXY7c.cache
|
144
169
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/T6IHjr1ecpmAaDU3ySLmeMaE5eP5QzVH1aTlw8V8554.cache
|
145
170
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/UbKcvOd2xh3MJoKxz4l4RHMy5IupdsiDoSllZDvYCZA.cache
|
@@ -155,12 +180,14 @@ files:
|
|
155
180
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/eN_ueL7m-D9xkEZpaLKwCxdrNzyz-MW9jcdJ5TdF9j8.cache
|
156
181
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/efKfhZKxLC7ERXlMb5CQMqYwbvWS-A--pH-0fqzvRiQ.cache
|
157
182
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fQswKiWgHSxfd0vnhvPwkwh9wGIZTBu3yR03l3nv7CM.cache
|
183
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache
|
158
184
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gl6ySpQTPCReJGYFItlmokrpEOrxwM9EOrFmURA8laE.cache
|
159
185
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/goEv0RKoifagsjFSdEHY-23E9ybQn_t1HHEZq7PlKQI.cache
|
160
186
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
|
161
187
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lCVulsymaTRS2RTmXVBUqqENMSabeQbzngmYUHwM_5g.cache
|
162
188
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/n6_6RjvPX2rCv5dytbSnnDrGwAj1ZcPfninuNUeP_iE.cache
|
163
189
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nCFQkSTtaw5Q2AGRmtIx6zI2cXXF9smOvNj4DA5S10Y.cache
|
190
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nFA3G3IroEqp51ggoqBK44-rTfddnvGQGGkyP8nV_LA.cache
|
164
191
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nPGy8yVxI1gvjhfwIRgcG5l2NLeLbWagQjt1eoJvwWE.cache
|
165
192
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nXo-w2o4zQBM_uSUnniuP53t5erBbSZPecMED9YnzQI.cache
|
166
193
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/neKnx0KmAGPHELnZcml6jS-4_cwZbB1Oge9c5t2l0gY.cache
|
@@ -169,7 +196,10 @@ files:
|
|
169
196
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/orojWnvYjvANZxZ9nlW90sFI9a8FVmGhXIH-yrTJosw.cache
|
170
197
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
|
171
198
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/qxbw0jMkxTNeM5T2QovOD9vTyvjHVjBN5tZdwBf519A.cache
|
199
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/s1fl9hrCR2SoMMkQWHyodwUJwS1iP6oNdK1WU-3I-QA.cache
|
172
200
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/sQHPafPr1hZ7n-WhjqwFB8eUR8I1YOa1yeg0-yNdc0U.cache
|
201
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/w6JX5zWN8vK4afiR4ib5M9nD0_1jiLPfUiWYu5k7pVQ.cache
|
202
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xEPwyXpA7w7L0dn1hl5TQXVeRaJmX7MX6yxu4kMCfvU.cache
|
173
203
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xstXMnjOlL2Ynn6MaI9bxlRnhTPYdgCIeOWnWphFSlA.cache
|
174
204
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/y98HqYF9nxOk8t_j3BKv9Nc4LuSAEzhER7rCCvOM6xI.cache
|
175
205
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/yM0pBAbKKoakCqPlRmnIV65cxsg6TKDBsQwFISw76vE.cache
|
@@ -177,6 +207,7 @@ files:
|
|
177
207
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zUYxDxkUr_FKBi6fF7kellqyG52AoZbYItHMUq17DJo.cache
|
178
208
|
- spec/lib/ghost_in_the_post/automatic_spec.rb
|
179
209
|
- spec/lib/ghost_in_the_post/ghost_on_command_spec.rb
|
210
|
+
- spec/lib/ghost_in_the_post/js_inline_spec.rb
|
180
211
|
- spec/lib/ghost_in_the_post/mail_ghost_spec.rb
|
181
212
|
- spec/lib/ghost_in_the_post/mailer_spec.rb
|
182
213
|
- spec/lib/ghost_in_the_post/phantom_transform_spec.rb
|
@@ -241,15 +272,19 @@ test_files:
|
|
241
272
|
- spec/dummy/Gemfile.lock
|
242
273
|
- spec/dummy/log/development.log
|
243
274
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/-4Tacd2aNU9g47XY4TSmQEnf1ef5LjeSZqNrE3qS-4I.cache
|
275
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/-k4_XP2RpcjsXdbEn6qBsAPpql3gQiE93Y8QOMuVfs0.cache
|
244
276
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/1hVihiFdBkDBsuCvA1I2vuFa9N6p-5zQ-qKvf4vz7jA.cache
|
245
277
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/23mzeUAO-pIzGJ1n84Dbg25udWeSiBcd6e_QsDihWQc.cache
|
246
278
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2it6AcrJYWU_rid4KTQQbQUlk6yrL99umLdDkl-bjhs.cache
|
247
279
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2ONadWXZXepGMP-_rM4RSH-lrRkYGc5TIH-U0uN8lG0.cache
|
248
280
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/438pUuXODQhzKPoJXcOlag9NCWp0HKhWhda1SqP2un0.cache
|
281
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/48z_eOfEjcUZbqRkitvPcQWh7Hn-hgxue7ekRBojr9g.cache
|
249
282
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4PgfVpd4CZQ0vAsVTl2KDb1z4f6GLl4mXIc3jSrahHM.cache
|
250
283
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4rPkFN0RbHFjbJe16_XepVFLtiWqn50qNpKLhKryqpE.cache
|
251
284
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/6544SZAu2zCeDrdro4h3izdKNXVvHzstwz12UxeiJoA.cache
|
252
285
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/6wWiAXBcdY6PLKOIhXQ6c8h9UtViuvdLcEO6wXK3mh0.cache
|
286
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/86v25E0xnwy001YHLw8LduVEdijax96aorQrr3yJGJI.cache
|
287
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8qvOy3VZFmkwGRCIuLzhSIYOcVtu6GpZIn6bPPcZWi8.cache
|
253
288
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_Bn81xMZj4dS_W5s9uSDhtEdpRZtsc21rcKEYAPCsZY.cache
|
254
289
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_Cw52w24AWZEbxLmduyWBMA6Y1OmJiEm1VNn7pY4rtk.cache
|
255
290
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_HO5Nyj_TzTxVwa4OOf_0UJfBCmjgkv7NsRU29AD5Oo.cache
|
@@ -259,28 +294,36 @@ test_files:
|
|
259
294
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/CLll3B8DlG_2J0DLaC2sufKgEn_AmpxRV3x68HKgzOo.cache
|
260
295
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/cQ32JvqbsXa5gTruc7Rx0g8qjxG4LhyIzg-UaJ5NXZE.cache
|
261
296
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/d6QhPuZpbU0tjmizSeRHUfEsKpw9jU6xBMTiPjrLTU4.cache
|
297
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/E9yiq0UWmLGIt128qFot0ShF2tKgQYbUVL1KyYdGlp4.cache
|
262
298
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/efKfhZKxLC7ERXlMb5CQMqYwbvWS-A--pH-0fqzvRiQ.cache
|
263
299
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Egcuj59mzXoDA4ZZ-fxt2CnFiU3NSBaSmw4Zyrtv5gE.cache
|
300
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ek5gIbxd0Jy0_2XTxSft3tXuZ_-qEvr3I-AcVimfTNI.cache
|
264
301
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/eN_ueL7m-D9xkEZpaLKwCxdrNzyz-MW9jcdJ5TdF9j8.cache
|
265
302
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/EnUqN5N9ByzTXeKLQFjWdnXsXrkrw-FEQ1GxfS9eacg.cache
|
303
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Fbiaq-Rp0eB0J2fCwImvqWSXj8Am1O_hHZvRxgWSj58.cache
|
304
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/FDIcBN4OBSwV2FMgpvgdfhAZC-ycsr1PkaDrhR0YKXg.cache
|
266
305
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fQswKiWgHSxfd0vnhvPwkwh9wGIZTBu3yR03l3nv7CM.cache
|
267
306
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/FV_wDshDLBMnnkMa1Hc-Oel63UD1ZrLXpKxyXh4Girw.cache
|
268
307
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gl6ySpQTPCReJGYFItlmokrpEOrxwM9EOrFmURA8laE.cache
|
269
308
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/goEv0RKoifagsjFSdEHY-23E9ybQn_t1HHEZq7PlKQI.cache
|
270
309
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/GtqgDsC0JMsKfj0x5uQrbPcSS3QIPIzLKrq2fGJDBf0.cache
|
310
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache
|
271
311
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
|
272
312
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/IFLV6zTaBXU1ccodbD3QJ4xUIOEix_Fbb7j8wsxrHw8.cache
|
273
313
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/J_D4gpddr1KPVysTvEE48iHsNzrL5Pbj8S5ZNt3PhA4.cache
|
274
314
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lc8lcXR-AibSZCIbx_imdfIOmD-zbZ_pwSNMs0o0Dos.cache
|
275
315
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lCVulsymaTRS2RTmXVBUqqENMSabeQbzngmYUHwM_5g.cache
|
276
316
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LvFfmsQjA0Dz1yL2mkUst9LnQQt2IGRaQrP_tLihwTg.cache
|
317
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mp7UGnWnNp4rKy5hCYvl9BsVHhctx-av-AYy7Wyz7CI.cache
|
277
318
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/n6_6RjvPX2rCv5dytbSnnDrGwAj1ZcPfninuNUeP_iE.cache
|
278
319
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nCFQkSTtaw5Q2AGRmtIx6zI2cXXF9smOvNj4DA5S10Y.cache
|
279
320
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/neKnx0KmAGPHELnZcml6jS-4_cwZbB1Oge9c5t2l0gY.cache
|
321
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nFA3G3IroEqp51ggoqBK44-rTfddnvGQGGkyP8nV_LA.cache
|
280
322
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nPGy8yVxI1gvjhfwIRgcG5l2NLeLbWagQjt1eoJvwWE.cache
|
281
323
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nXo-w2o4zQBM_uSUnniuP53t5erBbSZPecMED9YnzQI.cache
|
282
324
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/O9gjtBITAGlfzUwc2DT5N0GW2bo2b2yQ64gnQljLogM.cache
|
283
325
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/oB1njyQ78MOMRf_5TvuYzHleeI8eke5-FDIIVl7qas0.cache
|
326
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Oe5LRDH7di4WOiG-W-7zoXnP0Bv3hXzjKzRNdKBtCQI.cache
|
284
327
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/OQXwnC5z5STtd87Tr2dz1QBt4iZ8PoZTH8KBtBlUGnE.cache
|
285
328
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/orojWnvYjvANZxZ9nlW90sFI9a8FVmGhXIH-yrTJosw.cache
|
286
329
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/oRXvRqCp4o8l0MHPA7zkQLIyfyF3HD_VflN6a6aA3z0.cache
|
@@ -288,10 +331,13 @@ test_files:
|
|
288
331
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
|
289
332
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Q5jtbm8IDgytmUYx2yDM4wdqpIeUGokl32mrR0IXY7c.cache
|
290
333
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/qxbw0jMkxTNeM5T2QovOD9vTyvjHVjBN5tZdwBf519A.cache
|
334
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/s1fl9hrCR2SoMMkQWHyodwUJwS1iP6oNdK1WU-3I-QA.cache
|
291
335
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/sQHPafPr1hZ7n-WhjqwFB8eUR8I1YOa1yeg0-yNdc0U.cache
|
292
336
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/T6IHjr1ecpmAaDU3ySLmeMaE5eP5QzVH1aTlw8V8554.cache
|
293
337
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/UbKcvOd2xh3MJoKxz4l4RHMy5IupdsiDoSllZDvYCZA.cache
|
338
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/w6JX5zWN8vK4afiR4ib5M9nD0_1jiLPfUiWYu5k7pVQ.cache
|
294
339
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Wctefa7yQiJX5Ix7KeFOwwDLhKpdX3SmLGZlKSFgrC4.cache
|
340
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xEPwyXpA7w7L0dn1hl5TQXVeRaJmX7MX6yxu4kMCfvU.cache
|
295
341
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xstXMnjOlL2Ynn6MaI9bxlRnhTPYdgCIeOWnWphFSlA.cache
|
296
342
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/XuOqk2dVOcltjkihZ8J_u5Pbcm9Of5KFkjyihP6-5tc.cache
|
297
343
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/y98HqYF9nxOk8t_j3BKv9Nc4LuSAEzhER7rCCvOM6xI.cache
|
@@ -301,6 +347,7 @@ test_files:
|
|
301
347
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zUYxDxkUr_FKBi6fF7kellqyG52AoZbYItHMUq17DJo.cache
|
302
348
|
- spec/lib/ghost_in_the_post/automatic_spec.rb
|
303
349
|
- spec/lib/ghost_in_the_post/ghost_on_command_spec.rb
|
350
|
+
- spec/lib/ghost_in_the_post/js_inline_spec.rb
|
304
351
|
- spec/lib/ghost_in_the_post/mail_ghost_spec.rb
|
305
352
|
- spec/lib/ghost_in_the_post/mailer_spec.rb
|
306
353
|
- spec/lib/ghost_in_the_post/phantom_transform_spec.rb
|