# encoding: utf-8 require 'squib' require 'pp' Squib::Deck.new(layout: 'custom-layout.yml') do background color: :white hint text: :cyan # Layouts are YAML files that specify any option as a default rect layout: :frame # You can also override a given layout entry in the command circle layout: :frame, x: 50, y: 50, radius: 25 # Lots of commands have the :layout option text str: 'The Title', layout: :title # Layouts also support YAML merge keys toreuse settings svg file: 'spanner.svg', layout: :icon_left png file: 'shiny-purse.png', layout: :icon_middle svg file: 'spanner.svg', layout: :icon_right # Squib has its own, richer merge key: "extends" rect fill_color: :black, layout: :bonus rect fill_color: :white, layout: :bonus_inner text str: 'Extends!', layout: :bonus_text # Strings can also be used to specify a layout (e.g. from a data file) text str: 'subtitle', layout: 'subtitle' # For debugging purposes, you can always print out the loaded layout # require 'pp' # pp layout save_png prefix: 'layout_' end Squib::Deck.new(layout: ['custom-layout.yml', 'custom-layout2.yml']) do text str: 'The Title', layout: :title # from custom-layout.yml text str: 'The Subtitle', layout: :subtitle # redefined in custom-layout2.yml text str: 'The Description', layout: :description # from custom-layout2.yml save_png prefix: 'layout2_' end # Built-in layouts are easy to use and extend Squib::Deck.new(layout: 'playing-card.yml') do text str: "A\u2660", layout: :bonus_ul, font: 'Sans bold 100', hint: :red text str: "A\u2660", layout: :bonus_lr, font: 'Sans bold 100', hint: :red text str: "artwork here", layout: :art, hint: :red save_png prefix: 'layout_builtin_playing_card_' end # Built-in layouts are easy to use and extend Squib::Deck.new(layout: 'hand.yml') do %w(title bonus1 bonus2 bonus3 bonus4 bonus5 description snark art).each do |icon| text str: icon.capitalize, layout: icon, hint: :red, valign: 'middle', align: 'center' end png file: 'pokercard.png', alpha: 0.5 save_png prefix: 'layout_builtin_hand_' end