Method: Pdfmdedit#update_tags
- Defined in:
- lib/pdfmd/pdfmdedit.rb
#update_tags ⇒ Object
Update the tags
Reads and asks for updates from the user if no value in
is provided
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/pdfmd/pdfmdedit.rb', line 97 def () # Empty String for possible viewer Process PID viewerPID = '' # Iterate through all tags and request information from user # if necessary .each do |key,value| if value.empty? # At this poing: # 1. If @opendoc # 2. viewerPID.empty? (no viewer stated) # => Start the viewer if @opendoc and viewerPID.to_s.empty? viewerPID = start_viewer(@filename, @pdfviewer) self.log('debug', "Started external viewer '#{@pdfviewer}' with file '#{@filename}' and PID: #{viewerPID}") end puts 'Changing ' + key.capitalize + ', current value: ' + [key].to_s # Save the current value current_value = [key] # Validate Check for date input if key.downcase == 'createdate' # Repeat asking for a valid date validatedDate = false while !validatedDate userInput = readUserInput('New date value: ') if userInput.empty? and !current_value.empty? [key] = current_value self.log('debug', "User decided to take over old value for #{key}.") puts 'Date is needed. Setting old value: ' + current_value break end # Update loop condition variable validatedDate = validateDate(userInput) # Update Metadata [key] = validatedDate end # Input of all other values else [key] = readUserInput('New value: ') end else # Setting the new metadata [key] = value end end # Close the external PDF viewer if a PID has been set. if !viewerPID.to_s.empty? `kill #{viewerPID}` `pkill -f "#{@pdfviewer} #{@filename}"` # Double kill self.log('debug', "Viewer process with PID #{viewerPID} killed.") end end |