Class: PdfParadise::QueryPdfTitle

Inherits:
Base
  • Object
show all
Defined in:
lib/pdf_paradise/toplevel_methods/query_pdf_title.rb

Overview

PdfParadise::QueryPdfTitle

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#basename, #be_verbose?, #change_directory, #commandline_arguments?, #copy_file, #delete_file, #e, #ecomment, #esystem, #first_argument?, #gold, #infer_the_namespace, #input_without_leading_hyphens?, #internal_hash?, #is_an_image_file?, #is_on_roebe?, #lightsteelblue, #log_dir?, #mkdir, #mv, #n_pages?, #namespace?, #no_file_at, #opne, #opnn, #orange, #reset_the_internal_hash, #return_commandline_arguments_starting_with_hyphens, #return_files_from_the_commandline_arguments, #return_pwd, #rev, #set_be_quiet, #set_commandline_arguments, #steelblue, #try_to_ensure_that_this_directory_exists, #write_what_into

Constructor Details

#initialize(i = nil, run_already = true) ⇒ QueryPdfTitle

#

initialize

#


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 41

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  if block_given?
    yielded = yield
    case yielded
    when :be_verbose
      @be_verbose = true
    when :be_quiet
      @be_verbose = false
    end
  end
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

PdfParadise::QueryPdfTitle[]

#


144
145
146
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 144

def self.[](i = '')
  self.new(i)
end

Instance Method Details

#input?Boolean Also known as: pdf_files?

#

input?

#

Returns:

  • (Boolean)


85
86
87
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 85

def input?
  @input
end

#iterate_over_the_input_filesObject

#

iterate_over_the_input_files

#


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 92

def iterate_over_the_input_files
  use_this_regex = /^Title\s*: (.+)$/
  pdf_files?.each {|this_pdf_file|
    if File.exist? this_pdf_file
      sys_cmd = `exiftool #{this_pdf_file}`
      begin
        @title = sys_cmd.scan(use_this_regex).flatten.first
      rescue ArgumentError => error
        e 'An error happened for '+sfile(this_pdf_file)+'.'
        pp error
        pp error.class
        exit
      end
      if @be_verbose
        e "#{rev}The title for `#{sfile(this_pdf_file)}#{rev}` is:"
        e
        e "  #{sfancy(@title)}"
        e
      end
    else
      opnn(namespace: @namespace); e "No file exists at `#{sfile(this_pdf_file)}`."
    end
  }
end

#resetObject

#

reset (reset tag)

#


62
63
64
65
66
67
68
69
70
71
72
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 62

def reset
  super()
  # ======================================================================= #
  # === @be_verbose
  # ======================================================================= #
  @be_verbose = true
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
end

#runObject

#

run (run tag)

#


137
138
139
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 137

def run
  iterate_over_the_input_files
end

#set_input(i = '') ⇒ Object

#

set_input

#


77
78
79
80
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 77

def set_input(i = '')
  i = [i] unless i.is_a? Array
  @input = i
end

#string?Boolean

#

string?

This variant will always return a String - an empty String if the .pdf file has no title set.

#

Returns:

  • (Boolean)


130
131
132
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 130

def string?
  title?.to_s
end

#title?Boolean

#

title?

#

Returns:

  • (Boolean)


120
121
122
# File 'lib/pdf_paradise/toplevel_methods/query_pdf_title.rb', line 120

def title?
  @title
end