make shorthands more intuitive
This commit is contained in:
@@ -3,49 +3,44 @@ require_relative 'unit_conversion'
|
||||
module Squib
|
||||
module Args
|
||||
module XYWHShorthands
|
||||
WIDTH_MINUS_REGEX = /^width\s*\-\s*/
|
||||
HEIGHT_MINUS_REGEX = /^height\s*\-\s*/
|
||||
WIDTH_DIV_REGEX = /^width\s*\/\s*/
|
||||
HEIGHT_DIV_REGEX = /^height\s*\/\s*/
|
||||
MIDDLE_PLUS_REGEX = /^middle\s*\+\s*/
|
||||
MIDDLE_MINUS_REGEX = /^middle\s*\-\s*/
|
||||
|
||||
MIDDLE_ONLY = /^(middle|center)\s*$/
|
||||
DECK_ONLY = /^deck\s*$/
|
||||
MIDDLE_MINUS_REGEX = /^(middle|center)\s*\-\s*/
|
||||
MIDDLE_PLUS_REGEX = /^(middle|center)\s*\+\s*/
|
||||
DECK_MINUS_REGEX = /^deck\s*\-\s*/
|
||||
DECK_PLUS_REGEX = /^deck\s*\+\s*/
|
||||
DECK_DIV_REGEX = /^deck\s*\/\s*/
|
||||
|
||||
# dimension is usually either deck_width or deck_height
|
||||
def apply_shorthands(arg, deck, axis: :x)
|
||||
dimension = (axis == :x) ? deck.width : deck.height
|
||||
arg_s = arg.to_s
|
||||
case arg_s
|
||||
when 'middle'
|
||||
when MIDDLE_ONLY
|
||||
dimension / 2.0
|
||||
when 'center'
|
||||
dimension / 2.0
|
||||
when 'deck'
|
||||
when DECK_ONLY
|
||||
dimension
|
||||
when WIDTH_MINUS_REGEX # e.g. width - 1.5in
|
||||
n = arg_s.sub WIDTH_MINUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px)
|
||||
deck.width - n
|
||||
when HEIGHT_MINUS_REGEX # e.g. height - 1.5in
|
||||
n = arg_s.sub HEIGHT_MINUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px)
|
||||
deck.height - n
|
||||
when WIDTH_DIV_REGEX # e.g. width / 3
|
||||
n = arg_s.sub WIDTH_DIV_REGEX, ''
|
||||
when MIDDLE_MINUS_REGEX # e.g. width: middle - 3
|
||||
n = arg_s.sub MIDDLE_MINUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
deck.width / n
|
||||
when HEIGHT_DIV_REGEX # e.g. height / 3
|
||||
n = arg_s.sub HEIGHT_DIV_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
deck.height / n
|
||||
dimension / 2.0 - n
|
||||
when MIDDLE_PLUS_REGEX # e.g. middle + 1.5in
|
||||
n = arg_s.sub MIDDLE_PLUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px)
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
dimension / 2.0 + n
|
||||
when MIDDLE_MINUS_REGEX # e.g. middle - 1.5in
|
||||
n = arg_s.sub MIDDLE_MINUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px)
|
||||
dimension / 2.0 - n
|
||||
when DECK_MINUS_REGEX # e.g. width: deck - 1.5in
|
||||
n = arg_s.sub DECK_MINUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
dimension - n
|
||||
when DECK_PLUS_REGEX # e.g. deck + 1.5in (which is weird but ok)
|
||||
n = arg_s.sub DECK_PLUS_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
dimension + n
|
||||
when DECK_DIV_REGEX # e.g. width: deck/3
|
||||
n = arg_s.sub DECK_DIV_REGEX, ''
|
||||
n = UnitConversion.parse(n, deck.dpi, deck.cell_px).to_f
|
||||
dimension / n
|
||||
else
|
||||
arg
|
||||
end
|
||||
|
||||
@@ -6,5 +6,6 @@ module Squib
|
||||
# Most of the time this is in the alpha of the next release.
|
||||
# e.g. v0.0.5a is on its way to becoming v0.0.5
|
||||
#
|
||||
VERSION = '0.16.0-preview1'
|
||||
VERSION = '0.16.0-preview2a'
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user