Module: Rabbit::Parser::Ext::Image::Private
- Defined in:
- lib/rabbit/parser/ext/image.rb
Class Method Summary collapse
- .image_filename(canvas, uri) ⇒ Object
- .other_uri_filename(canvas, uri) ⇒ Object
- .setup_image_file(canvas, uri, filename) ⇒ Object
- .tmp_filename(canvas, key) ⇒ Object
Class Method Details
.image_filename(canvas, uri) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/rabbit/parser/ext/image.rb', line 49 def image_filename(canvas, uri) case uri.scheme.to_s.downcase when "file" GLib.filename_from_utf8(uri.path) when "http", "https", "ftp" other_uri_filename(canvas, uri) else path = Pathname.new(GLib.filename_from_utf8(uri.path)) return path.to_s if path.absolute? = canvas.full_path(path.to_s) = URI() if .scheme.nil? else image_filename(canvas, ) end end end |
.other_uri_filename(canvas, uri) ⇒ Object
75 76 77 78 79 |
# File 'lib/rabbit/parser/ext/image.rb', line 75 def other_uri_filename(canvas, uri) filename = tmp_filename(canvas, uri.to_s) setup_image_file(canvas, uri, filename) filename end |
.setup_image_file(canvas, uri, filename) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/rabbit/parser/ext/image.rb', line 81 def setup_image_file(canvas, uri, filename) begin open(uri, "rb") do |in_file| File.open(filename, "wb") do |out| out.print(in_file.read) end end rescue SocketError, OpenURI::HTTPError canvas.logger.warn("#{$!.}: #{uri}") end end |
.tmp_filename(canvas, key) ⇒ Object
69 70 71 72 73 |
# File 'lib/rabbit/parser/ext/image.rb', line 69 def tmp_filename(canvas, key) dir = canvas.tmp_dir_name FileUtils.mkdir_p(dir) File.join(dir, CGI.escape(key)) end |