Sha256: badc2bed6525a8fb311e0d3b9ea24c09052022b7168fc4f5d56f7f5824eb06b2
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
require_relative '../errors_warnings/warn_unexpected_params' module Squib class Deck def cut_zone(opts = {}) DSL::CutZone.new(self, __callee__).run(opts) end end module DSL class CutZone include WarnUnexpectedParams attr_reader :dsl_method, :deck def initialize(deck, dsl_method) @deck = deck @dsl_method = dsl_method end def self.accepted_params %i(x y width height margin angle x_radius y_radius radius fill_color stroke_color stroke_width stroke_strategy join dash cap range layout) end def run(opts) warn_if_unexpected opts cut_defaults = { margin: '0.125in', radius: '0.125in', stroke_color: :red, fill_color: '#0000', stroke_width: 2.0, } new_opts = cut_defaults.merge(opts) margin = Args::UnitConversion.parse new_opts[:margin], @deck.dpi, @deck.cell_px new_opts[:x] = margin new_opts[:y] = margin new_opts[:width] = deck.width - (2 * margin) new_opts[:height] = deck.height - (2 * margin) new_opts.delete :margin deck.rect new_opts end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
squib-0.19.0 | lib/squib/dsl/cut_zone.rb |
squib-0.19.0b | lib/squib/dsl/cut_zone.rb |
squib-0.19.0a | lib/squib/dsl/cut_zone.rb |