require 'squib' Squib::Deck.new(cards: 18, layout: 'layout.yml', width: '3.5in', height: '2.5in') do data = csv file: 'data.csv' background color: 'white' safe_zone cut_zone text layout: :title, str: 'Mana', align: :center, range: (0..14) text layout: :title, str: 'Border', align: :center, range: (15..17) svg layout: :leftSymbol, width: 200, file: data.left.map { |elem| "images/#{elem}.svg" } text layout: :leftText, str: data.left, align: :center, ellipsize: :autoscale svg layout: :rightSymbol, width: 200, file: data.right.map { |elem| "images/#{elem}.svg" } text layout: :rightText, str: data.right, align: :center, ellipsize: :autoscale save format: :png, prefix: 'card_' save_pdf trim: 37.5, file: 'pnp.pdf' end Squib::Deck.new(cards: 6, width: '3in', height: '4in') do rect svg x: '0.5in', y: '0.5in', width: '2.0in', height: '2.0in', file: 'images/hexgrid.svg' text x: '0.5in', y: '2.75in', width: '2in', height: '0.5in', str: 'Scoring', align: :center (0..6).each do |i| rect x: inches(0.5) + i * inches(2.0/7.0), y: '3.0in', width: '0.25in', height: '0.25in' rect x: inches(0.5) + i * inches(2.0/7.0), y: '3.25in', width: '0.25in', height: '0.25in' end star x: inches(0.5) + 6 * inches(2.0/7.0) + inches(0.125), y: '3.125in', outer_radius: '0.125in', inner_radius: inches(1.0/16.0), angle: '270deg' save_pdf trim: 37.5, file: 'player.pdf' end