def preserve_aspect_ratio(align, meet_or_slice='meet')
@align = align.to_s
if @align != 'none'
m = /\A(xMin|xMid|xMax)(YMin|YMid|YMax)\z/.match(@align)
raise(ArgumentError, "unknown alignment specifier: #{@align}") unless m
end
if meet_or_slice
meet_or_slice = meet_or_slice.to_s.downcase
if meet_or_slice == 'meet' || meet_or_slice == 'slice'
@meet_or_slice = meet_or_slice
else
raise(ArgumentError, "specifier must be `meet' or `slice' (got #{meet_or_slice})")
end
end
yield(self) if block_given?
self
end