diff --git a/samples/cairo_access.rb b/samples/cairo_access.rb new file mode 100644 index 0000000..59fe59e --- /dev/null +++ b/samples/cairo_access.rb @@ -0,0 +1,27 @@ +require 'squib' + +Squib::Deck.new(cards: 2) do + + # If you really need something custom-made, the underlying cairo context + # can be accessed directly via each Squib::Card + # + # WARNING! Input validation is not done on Squib::Cards. Proceed at your own risk. + + # The recommended approach is to use Deck's Enumerable, which iterates over Squib::Cards + # I also recommend wrapping it in a Cairo save/restore, which Squib calls "use_cairo" + each do |card| + card.use_cairo do |cairo_context| + cairo_context.set_source_color(:white) + cairo_context.paint + end + end + + # Or the square bracket accessors [] + self[1].use_cairo do |cairo_context| + cairo_context.circle(50, 50, 50) + cairo_context.set_source_color(:red) + cairo_context.fill + end + + save_png prefix: 'cairo_access_' +end \ No newline at end of file