rack-pagespeed 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/rack/pagespeed/filters/base.rb +5 -1
- data/lib/rack/pagespeed/filters/combine_css.rb +2 -2
- data/lib/rack/pagespeed/filters/combine_javascripts.rb +3 -3
- data/lib/rack/pagespeed/filters/inline_css.rb +2 -2
- data/lib/rack/pagespeed/filters/inline_javascripts.rb +2 -2
- data/rack-pagespeed.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
1
3
|
module Rack::PageSpeed::Filters
|
2
4
|
class Base
|
3
5
|
attr_reader :document, :options
|
@@ -44,7 +46,7 @@ module Rack::PageSpeed::Filters
|
|
44
46
|
|
45
47
|
private
|
46
48
|
def file_for node
|
47
|
-
path =
|
49
|
+
path = case node.name
|
48
50
|
when 'script'
|
49
51
|
node['src']
|
50
52
|
when 'img'
|
@@ -52,6 +54,8 @@ module Rack::PageSpeed::Filters
|
|
52
54
|
when 'link'
|
53
55
|
node['href']
|
54
56
|
end
|
57
|
+
return false unless path
|
58
|
+
path = ::File.join(options[:public], URI.parse(path).path)
|
55
59
|
::File.open path if ::File.exists? path
|
56
60
|
end
|
57
61
|
end
|
@@ -9,7 +9,7 @@ class Rack::PageSpeed::Filters::CombineCSS < Rack::PageSpeed::Filter
|
|
9
9
|
priority 9
|
10
10
|
|
11
11
|
def execute! document
|
12
|
-
nodes = document.css('link[rel="stylesheet"][href
|
12
|
+
nodes = document.css('link[rel="stylesheet"][href]')
|
13
13
|
return false unless nodes.count > 0
|
14
14
|
groups = group_siblings topmost_of_sequence(nodes)
|
15
15
|
groups.each do |group|
|
@@ -32,7 +32,7 @@ class Rack::PageSpeed::Filters::CombineCSS < Rack::PageSpeed::Filter
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def local_css? node
|
35
|
-
node.name == 'link'
|
35
|
+
node.name == 'link' and file_for(node)
|
36
36
|
end
|
37
37
|
|
38
38
|
def topmost_of_sequence nodes
|
@@ -10,7 +10,7 @@ class Rack::PageSpeed::Filters::CombineJavaScripts < Rack::PageSpeed::Filter
|
|
10
10
|
priority 2
|
11
11
|
|
12
12
|
def execute! document
|
13
|
-
nodes = document.css('script[src
|
13
|
+
nodes = document.css('script[src]')
|
14
14
|
return false unless nodes.count > 0
|
15
15
|
groups = group_siblings topmost_of_sequence(nodes)
|
16
16
|
groups.each do |group|
|
@@ -36,7 +36,7 @@ class Rack::PageSpeed::Filters::CombineJavaScripts < Rack::PageSpeed::Filter
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def local_script? node
|
39
|
-
node.name == 'script'
|
39
|
+
node.name == 'script' and file_for(node)
|
40
40
|
end
|
41
41
|
|
42
42
|
def topmost_of_sequence nodes
|
@@ -44,7 +44,7 @@ class Rack::PageSpeed::Filters::CombineJavaScripts < Rack::PageSpeed::Filter
|
|
44
44
|
nodes.each do |node|
|
45
45
|
_previous, _next = node.previous_sibling, node.next_sibling
|
46
46
|
if _previous && local_script?(_previous) &&
|
47
|
-
(!_next || !
|
47
|
+
(!_next || !file_for(_next))
|
48
48
|
result << node
|
49
49
|
end
|
50
50
|
end
|
@@ -2,11 +2,11 @@ class Rack::PageSpeed::Filters::InlineCSS < Rack::PageSpeed::Filter
|
|
2
2
|
priority 10
|
3
3
|
|
4
4
|
def execute! document
|
5
|
-
nodes = document.css('link[rel="stylesheet"][href
|
5
|
+
nodes = document.css('link[rel="stylesheet"][href]')
|
6
6
|
return false unless nodes.count > 0
|
7
7
|
nodes.each do |node|
|
8
8
|
file = file_for node
|
9
|
-
next if file.stat.size > (@options[:max_size] or 2048)
|
9
|
+
next if !file or file.stat.size > (@options[:max_size] or 2048)
|
10
10
|
inline = Nokogiri::XML::Node.new 'style', document
|
11
11
|
inline.content = file.read
|
12
12
|
node.before inline
|
@@ -3,11 +3,11 @@ class Rack::PageSpeed::Filters::InlineJavaScripts < Rack::PageSpeed::Filter
|
|
3
3
|
priority 10
|
4
4
|
|
5
5
|
def execute! document
|
6
|
-
nodes = document.css('script[src
|
6
|
+
nodes = document.css('script[src]')
|
7
7
|
return false unless nodes.count > 0
|
8
8
|
nodes.each do |node|
|
9
9
|
file = file_for node
|
10
|
-
next if file.stat.size > (@options[:max_size] or 2048)
|
10
|
+
next if !file or file.stat.size > (@options[:max_size] or 2048)
|
11
11
|
inline = Nokogiri::XML::Node.new 'script', document
|
12
12
|
inline.content = file.read
|
13
13
|
node.before inline
|
data/rack-pagespeed.gemspec
CHANGED