lib/elsmore/resource.rb in elsmore-0.2.1 vs lib/elsmore/resource.rb in elsmore-0.3.0
- old
+ new
@@ -1,22 +1,45 @@
require 'httparty'
module Elsmore
class Resource
- attr_accessor :url, :filename, :emitter
+ attr_accessor :url, :filename, :emitter, :parent
def initialize url, parent
self.url = Elsmore::Url.new(url, parent)
+ self.parent = parent
end
- def write!
+ def write! nested_urls = false
+ process_nested_urls if nested_urls
+
writer = Elsmore::Writer.new(self)
writer.emitter = emitter
writer.write
self.filename = writer.canonical_filename
end
def data
@data ||= HTTParty.get(url.canonical_url)
+ end
+
+ private
+
+ def process_nested_urls
+ urls = data.scan(/url\((.*?)\)/i).map do |match|
+ if match[0].start_with?('"') || match[0].start_with?("'")
+ match[0][1...-1]
+ else
+ match[0]
+ end
+ end
+
+ urls.each do |nested_url|
+ resource = Elsmore::Resource.new(nested_url, url)
+ resource.emitter = emitter
+ resource.write!
+
+ @data.gsub!(nested_url, resource.url.resource_path)
+ end
end
end
end