class ShatteredMachine::Io
Find all png or jpg image in a given directory. Generate output filename that doesn't overwrite existing file.
Constants
- JPG_EXTENSIONS
- PNG_EXTENSIONS
- Paths
Attributes
output_filename[RW]
Public Class Methods
new(input_path, output_folder, output_filename)
click to toggle source
@param input_path [string] input file or directory @param output_folder [string] output directory @param output_filename
[string] output file name
# File lib/shattered_machine/io.rb, line 12 def initialize(input_path, output_folder, output_filename) @input_path = input_path @output_folder = output_folder @output_filename = output_filename end
Public Instance Methods
jpg_images()
click to toggle source
@return [Array<Paths>] list of all jpg images in input_path
# File lib/shattered_machine/io.rb, line 28 def jpg_images return single_image_io if extension_included?(JPG_EXTENSIONS, @input_path) images_in_directory(JPG_EXTENSIONS).map do |img| Paths.new("#{@input_path}/#{img}", generate_output_filename(img)) end end
png_images()
click to toggle source
@return [Array<Paths>] list of all png images in input_path
# File lib/shattered_machine/io.rb, line 19 def png_images return single_image_io if extension_included?(PNG_EXTENSIONS, @input_path) images_in_directory(PNG_EXTENSIONS).map do |img| Paths.new("#{@input_path}/#{img}", generate_output_filename(img)) end end
Private Instance Methods
extension_included?(extensions, file)
click to toggle source
# File lib/shattered_machine/io.rb, line 60 def extension_included?(extensions, file) extensions.include? File.extname(file) end
generate_output_filename(img = '')
click to toggle source
# File lib/shattered_machine/io.rb, line 46 def generate_output_filename(img = '') img_name = File.basename(img, File.extname(img)) if File.file?("#{@output_folder}/#{@output_filename}#{img_name}.png") "#{@output_folder}/#{@output_filename}#{img_name}_#{time_utc_string}.png" else "#{@output_folder}/#{@output_filename}#{img_name}.png" end end
images_in_directory(extensions)
click to toggle source
# File lib/shattered_machine/io.rb, line 64 def images_in_directory(extensions) children = [] Dir.foreach(@input_path) do |file| next unless extension_included?(extensions, file) children << file end children end
single_image_io()
click to toggle source
# File lib/shattered_machine/io.rb, line 42 def single_image_io [Paths.new(@input_path, generate_output_filename)] end
time_utc_string()
click to toggle source
# File lib/shattered_machine/io.rb, line 55 def time_utc_string t = Time.now.getutc t.strftime '%Y%m%d_%H%M%S' end