Class: Slimmer::UrlRewriter
- Inherits:
-
Object
- Object
- Slimmer::UrlRewriter
- Defined in:
- lib/slimmer.rb
Instance Method Summary collapse
- #filter(src, dest) ⇒ Object
-
#initialize(request) ⇒ UrlRewriter
constructor
A new instance of UrlRewriter.
- #rewrite_document(doc) ⇒ Object
- #rewrite_nodes(nodes, attr) ⇒ Object
- #rewrite_url(uri) ⇒ Object
Constructor Details
#initialize(request) ⇒ UrlRewriter
Returns a new instance of UrlRewriter.
99 100 101 |
# File 'lib/slimmer.rb', line 99 def initialize(request) @request = request end |
Instance Method Details
#filter(src, dest) ⇒ Object
103 104 105 |
# File 'lib/slimmer.rb', line 103 def filter(src,dest) rewrite_document src end |
#rewrite_document(doc) ⇒ Object
107 108 109 110 111 |
# File 'lib/slimmer.rb', line 107 def rewrite_document(doc) rewrite_nodes doc.css('body img'),'src' rewrite_nodes doc.css('script'),'src' rewrite_nodes doc.css('link'),'href' end |
#rewrite_nodes(nodes, attr) ⇒ Object
113 114 115 116 117 118 119 |
# File 'lib/slimmer.rb', line 113 def rewrite_nodes(nodes,attr) nodes.each do |node| next unless node.attr(attr) node_uri = URI.parse(node.attr(attr)) node.attribute(attr).value = rewrite_url(node_uri).to_s end end |
#rewrite_url(uri) ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/slimmer.rb', line 121 def rewrite_url(uri) unless uri.absolute? uri.scheme = @request.scheme if @request.host =~ /:/ host,port = @request.host.split(":") uri.host = host uri.port = port else uri.host = @request.host uri.port = @request.port end end uri end |