class BreezyPDF::Resources::Asset
:nodoc
Public Class Methods
new(base_url, asset_path_or_url)
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 6 def initialize(base_url, asset_path_or_url) @base_url = base_url @asset_path_or_url = asset_path_or_url end
Public Instance Methods
content_type()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 11 def content_type io_object.content_type end
file_path()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 19 def file_path file.path end
filename()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 15 def filename @filename ||= URI(asset_url).path.split("/").last end
Private Instance Methods
asset_url()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 50 def asset_url @asset_url ||= if URI(@asset_path_or_url).host @asset_path_or_url else "#{@base_url}#{@asset_path_or_url}" end end
download_asset_from_url()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 40 def download_asset_from_url start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) asset_object = open(asset_url) timing = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time BreezyPDF.logger.info("[BreezyPDF] Downloading #{filename} took `#{timing} seconds`") asset_object end
file()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 25 def file @file ||= if io_object.is_a?(StringIO) Tempfile.new.tap do |f| f.write io_object.tap(&:rewind).read f.flush end else io_object end end
io_object()
click to toggle source
# File lib/breezy_pdf/resources/asset.rb, line 36 def io_object @io_object ||= download_asset_from_url end