Go to file
Andy Meneely 9cde048c00 Spacing! 2014-08-01 15:32:13 -04:00
bin Putting together a basic squib new command 2014-07-20 00:17:05 -04:00
lib Spacing! 2014-08-01 15:32:13 -04:00
samples Suppressing progress bar output and getting hints to work 2014-07-31 16:57:49 -04:00
spec Suppressing progress bar output and getting hints to work 2014-07-31 16:57:49 -04:00
.gitignore Ignoring inch doc stuff 2014-07-29 00:16:24 -04:00
.travis.yml Getting travis to use new bundler 2014-07-19 08:31:30 -04:00
.yardopts Using redcarpet for more Github-like handling of yardoc 2014-08-01 13:59:57 -04:00
API.md Helping with an error in the API if you try to use positional parameters 2014-08-01 14:21:43 -04:00
Gemfile Re-generating gem with bundler 2014-07-08 01:21:21 -04:00
LICENSE.txt Re-generating gem with bundler 2014-07-08 01:21:21 -04:00
README.md Added support for "extends" in layouts 2014-07-29 16:18:01 -04:00
Rakefile Rake installs THEN specs 2014-07-25 10:59:48 -04:00
squib.gemspec Using redcarpet for more Github-like handling of yardoc 2014-08-01 13:59:57 -04:00

README.md

Squib Gem Version Build Status Dependency Status Coverage Status Inline docs

Squib is a Ruby DSL for prototyping card and board games. With Squib, you just write a little bit of Ruby and you can compile your game's data and images into a series of images raedy for print-and-play or even print-on-demand. Squib is very data-driven - think of it like nanDeck done "the Ruby way". Squib currently supports:

  • Reading PNGs and SVGs using Cairo
  • Complex text rendering using Pango
  • Reading .xlsx files
  • Basic shape drawing
  • Rendering to PNGs and PDFs
  • Unit conversion
  • Specfiying your layouts in a YML file
  • Plus the full power of Ruby!

Check this out.

require 'squib'

Squib::Deck.new do
  text str: 'Hello, World!'  
  save_png
end

That script just created a deck of with 1 image at 825x1125 with the string "Hello, World" in the upper-left corner.

Installation

Install it yourself with:

$ gem install squib

If you're using Bundler, add this line to your application's Gemfile:

gem 'squib'

And then execute:

$ bundle

Note: Squib has some native dependencies, such as Cairo, Pango, and Nokogiri, which all require DevKit to compile C code. This is usually not painful, but can cause headaches on some setups. For Windows users, I strongly recommend using the non-64 bit RubyInstaller at http://rubyinstaller.org. For Mac, I recommend using rvm.

Note: Squib requires Ruby 2.0 or later.

Getting Started

After installing Squib, you can create a project and run your first build like this:

$ squib new my-cool-game
$ cd my-cool-game
$ ruby deck.rb

The squib new command will generate files and folders like this:

_output
  gitkeep.txt
.gitignore
ABOUT.md
config.yml
deck.rb
Gemfile
layout.yml
PNP NOTES.md

The central file here is deck.rb. Here's a basic example of a deck to work from:

{include:file:samples/basic.rb basic.rb}

Learning Squib

After going over this README, here are some other places to go learn Squib:

  • The YARD-generated API documentation for the latest Squib gem is a method-by-method reference. I recommend starting with the API file, and looking at the Deck class. If you are following Squib master, see the latest version
  • The samples directory in the source repository has lots of examples
  • Junk Land (link TBD) is my own creation that's uses Squib for both black-and-white print-and-play and full color.

Development

Squib is currently in pre-release alpha, so the API is still maturing. If you are using Squib, however, I'd love to hear about it! Feel free to file a bug or feature request.

Contributing

Squib is an open source tool, and I would love participation. If you want your code integrated:

  1. Fork it ( https://github.com/[my-github-username]/squib/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request