Class: Slimmer::UrlRewriter
- Inherits:
-
Object
- Object
- Slimmer::UrlRewriter
- Defined in:
- lib/slimmer/url_rewriter.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.
3 4 5 |
# File 'lib/slimmer/url_rewriter.rb', line 3 def initialize(request) @request = request end |
Instance Method Details
#filter(src, dest) ⇒ Object
7 8 9 |
# File 'lib/slimmer/url_rewriter.rb', line 7 def filter(src,dest) rewrite_document src end |
#rewrite_document(doc) ⇒ Object
11 12 13 14 15 |
# File 'lib/slimmer/url_rewriter.rb', line 11 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
17 18 19 20 21 22 23 |
# File 'lib/slimmer/url_rewriter.rb', line 17 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
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/slimmer/url_rewriter.rb', line 25 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 |