|
|
12 years ago | |
|---|---|---|
| bin | 12 years ago | |
| lib | 12 years ago | |
| samples | 12 years ago | |
| spec | 12 years ago | |
| .gitignore | 12 years ago | |
| .travis.yml | 12 years ago | |
| .yardopts | 12 years ago | |
| API.md | 12 years ago | |
| Gemfile | 12 years ago | |
| LICENSE.txt | 12 years ago | |
| README.md | 12 years ago | |
| Rakefile | 12 years ago | |
| squib.gemspec | 12 years ago | |
README.md
Squib

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
.xlsxfiles - 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
APIfile, and looking at theDeckclass. If you are following Squib master, see the latest version - The
samplesdirectory 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:
- Fork it ( https://github.com/[my-github-username]/squib/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request