You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Andy Meneely bb3a861efa Clarifying the SVG id offset 12 years ago
bin Putting together a basic squib new command 12 years ago
lib More ignores for the project template 12 years ago
samples Clarifying the SVG id offset 12 years ago
spec Suppressing progress bar output and getting hints to work 12 years ago
.gitignore Ignoring inch doc stuff 12 years ago
.travis.yml Getting travis to use new bundler 12 years ago
.yardopts Using redcarpet for more Github-like handling of yardoc 12 years ago
API.md Helping with an error in the API if you try to use positional parameters 12 years ago
Gemfile Re-generating gem with bundler 12 years ago
LICENSE.txt Re-generating gem with bundler 12 years ago
README.md Added support for "extends" in layouts 12 years ago
Rakefile Rake installs THEN specs 12 years ago
squib.gemspec Using redcarpet for more Github-like handling of yardoc 12 years ago

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