module Squib::Args::UnitConversion

Public Instance Methods

parse(arg, dpi=300, cell_px=37.5) click to toggle source
# File lib/squib/args/unit_conversion.rb, line 7
                def parse(arg, dpi=300, cell_px=37.5)
  case arg.to_s.rstrip
  when /in$/ # ends with "in"
    arg.rstrip[0..-2].to_f * dpi
  when /pt$/ # ends with "in"
    arg.rstrip[0..-2].to_f * dpi / POINTS_PER_IN
  when /cm$/ # ends with "cm"
    arg.rstrip[0..-2].to_f * dpi * INCHES_IN_CM
  when /mm$/ # ends with "mm"
    arg.rstrip[0..-2].to_f * dpi * INCHES_IN_CM / 10.0
  when /deg$/ # ends with "deg"
    arg.rstrip[0..-3].to_f * (Math::PI / 180.0)
  when /c(ell)?[s]?$/ # ends with 'c', 'cell', or 'cells'
    arg.sub(/c(ell)?[s]?$/, '').to_f * cell_px
  else
    arg
  end
end