class Prawn::SVG::UrlLoader
Constants
- Error
Attributes
enable_cache[R]
loaders[R]
Public Class Methods
new(enable_cache: false, enable_web: true, enable_file_with_root: nil)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 6 def initialize(enable_cache: false, enable_web: true, enable_file_with_root: nil) @url_cache = {} @enable_cache = enable_cache @loaders = [] loaders << Prawn::SVG::Loaders::Data.new loaders << Prawn::SVG::Loaders::Web.new if enable_web loaders << Prawn::SVG::Loaders::File.new(enable_file_with_root) if enable_file_with_root end
Public Instance Methods
add_to_cache(url, data)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 20 def add_to_cache(url, data) @url_cache[url] = data end
load(url)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 16 def load(url) retrieve_from_cache(url) || perform_and_cache(url) end
retrieve_from_cache(url)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 24 def retrieve_from_cache(url) @url_cache[url] end
Private Instance Methods
perform(url)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 36 def perform(url) try_each_loader(url) or raise Error, "No handler available for this URL scheme" end
perform_and_cache(url)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 30 def perform_and_cache(url) data = perform(url) add_to_cache(url, data) if enable_cache data end
try_each_loader(url)
click to toggle source
# File lib/prawn/svg/url_loader.rb, line 40 def try_each_loader(url) loaders.detect do |loader| data = loader.from_url(url) break data if data end end