Sha256: 665659f4a6997b7b461906227a6796fa4dff141aeba108a7d635518d00f49979

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

require_relative 'arg_loader'

module Squib::Args
  module_function def extract_transform(opts, deck)
    Transform.new.extract!(opts, deck)
  end

  class Transform
    include ArgLoader

    def self.parameters
      { angle: 0,
        crop_x: 0,
        crop_y: 0,
        crop_width: :native,
        crop_height: :native,
        crop_corner_radius: nil,
        crop_corner_x_radius: 0,
        crop_corner_y_radius: 0,
        flip_vertical: false,
        flip_horizontal: false,
      }
    end

    def self.expanding_parameters
      parameters.keys # all of them
    end

    def self.params_with_units
      parameters.keys - [:flip_vertical, :flip_horizontal]
    end

    def validate_crop_width(arg, _i)
      return arg if @deck.nil?
      return @deck.width if arg == :deck
      arg
    end

    def validate_crop_height(arg, _i)
      return arg if @deck.nil?
      return @deck.height if arg == :deck
      arg
    end

    def validate_crop_corner_x_radius(arg, i)
      return crop_corner_radius[i] unless crop_corner_radius[i].nil?
      arg
    end

    def validate_crop_corner_y_radius(arg, i)
      return crop_corner_radius[i] unless crop_corner_radius[i].nil?
      arg
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
squib-0.19.0 lib/squib/args/transform.rb
squib-0.19.0b lib/squib/args/transform.rb
squib-0.19.0a lib/squib/args/transform.rb