You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

63 lines
1.2 KiB

require 'squib/args/arg_loader'
require 'squib/args/dir_validator'
module Squib
# @api private
module Args
class SaveBatch
include ArgLoader
include DirValidator
def initialize
end
def self.parameters
{
angle: 0,
count_format: '%02d',
dir: '_output',
prefix: 'card_',
rotate: false,
trim_radius: 0,
trim: 0,
}
end
def self.expanding_parameters
self.parameters.keys # all of them
end
def self.params_with_units
[:trim, :trim_radius]
end
def validate_dir(arg, _i)
ensure_dir_created(arg)
end
def validate_rotate(arg, i)
case arg
when true, :clockwise
angle[i] = 0.5 * Math::PI
return true
when :counterclockwise
angle[i] = 1.5 * Math::PI
return true
when false
false
else
raise 'invalid option to rotate: only [true, false, :clockwise, :counterclockwise]'
end
end
def full_filename(i)
"#{dir[i]}/#{prefix[i]}#{count_format[i] % i}.png"
end
def summary
"#{dir[0]}/#{prefix[0]}_*"
end
end
end
end