Sha256: 8c4021d58bdd6edbdad92306f5692b3c1a8dceacbcba8c306640f56e396ce334
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true require 'tempfile' require 'uri' class MyPDFKit class Source SOURCE_FROM_STDIN = '-' def initialize(url_file_or_html) @source = url_file_or_html # @source is assumed to be modifiable, so make sure it is. @source = @source.dup if @source.is_a?(String) && @source.frozen? end def url? @is_url ||= @source.is_a?(String) && @source.match(/\Ahttp/) end def file? @is_file ||= @source.kind_of?(File) || @source.kind_of?(Tempfile) end def html? @is_html ||= !(url? || file?) end def to_input_for_command if file? @source.path elsif url? escaped_url else SOURCE_FROM_STDIN end end def to_s file? ? @source.path : @source end private def escaped_url url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source end def url_needs_escaping? URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.unescape(@source)) != @source end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
my_pdfkit-0.1.0.0 | lib/my_pdfkit/source.rb |