class PDFKit::Source

Constants

SOURCE_FROM_STDIN

Public Class Methods

new(url_file_or_html) click to toggle source
# File lib/pdfkit/source.rb, line 10
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

Public Instance Methods

file?() click to toggle source
# File lib/pdfkit/source.rb, line 20
def file?
  @is_file ||= @source.kind_of?(File) || @source.kind_of?(Tempfile)
end
html?() click to toggle source
# File lib/pdfkit/source.rb, line 24
def html?
  @is_html ||= !(url? || file?)
end
to_input_for_command() click to toggle source
# File lib/pdfkit/source.rb, line 28
def to_input_for_command
  if file?
    @source.path
  elsif url?
    escaped_url
  else
    SOURCE_FROM_STDIN
  end
end
to_s() click to toggle source
# File lib/pdfkit/source.rb, line 38
def to_s
  file? ? @source.path : @source
end
url?() click to toggle source
# File lib/pdfkit/source.rb, line 16
def url?
  @is_url ||= @source.is_a?(String) && @source.match(/\Ahttp/)
end

Private Instance Methods

escaped_url() click to toggle source
# File lib/pdfkit/source.rb, line 44
def escaped_url
  url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
url_needs_escaping?() click to toggle source
# File lib/pdfkit/source.rb, line 48
def url_needs_escaping?
  URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.unescape(@source)) != @source
end