Skip to content
This repository

Open Source Merb book

Merge branch 'english'

* english:
  optimized navigation code and renamed folders
  A paragraph about Sequel::Model.raise_on_typecast_failure
  Add a link back to the full Sequel plugins list.
latest commit af39ad9843
Matt Aimonetti authored January 30, 2009
Octocat-spinner-32 app optimized navigation code and renamed folders January 30, 2009
Octocat-spinner-32 autotest added the fundations of the Merb Open Source Book December 01, 2008
Octocat-spinner-32 bin renaming and merb update January 16, 2009
Octocat-spinner-32 book-content Merge branch 'english' January 30, 2009
Octocat-spinner-32 config fixed the tocs and specs January 23, 2009
Octocat-spinner-32 doc typo is css December 13, 2008
Octocat-spinner-32 gems removed bundled gems added by accident January 30, 2009
Octocat-spinner-32 lib Div extension to Maruku December 08, 2008
Octocat-spinner-32 log added i18n to the merb book December 02, 2008
Octocat-spinner-32 public a bit more work done on the controllers page and css update December 11, 2008
Octocat-spinner-32 spec started refactoring the page controller and helpers January 16, 2009
Octocat-spinner-32 tasks reorganized the book by adding 2 new sections: Active Record and Sequel January 07, 2009
Octocat-spinner-32 .gitignore renaming and merb update January 16, 2009
Octocat-spinner-32 README.markdown made Joaquin the official Spanish translation líder ;) December 15, 2008
Octocat-spinner-32 Rakefile fixed the tocs and specs January 23, 2009

The Merb Open Source Book

This book is an open source book written for and by the Merb community.


To run the book locally, just clone this repo and start the bundled copy of Merb:

    $ ./bin/merb

And open http://localhost:4000/ in your browser

Note that you might have to "redeploy" the native gems if the merb app server doesn't start:

    $ ./bin/thor merb:gem:redeploy

A static HTML and a PDF version will soon be available online.

How to contribute

  • Install the github gem from

    $ gem install defunkt-github -s
  • Fork the mattetti/merb-book project by clicking the fork button at

  • Clone a copy of the repository to the local machine.

    $ git clone
  • Choosing from the branches in Mattetti’s repo (i.e., ‘english’), select the LANGUAGE you're going to contribute to.

  • Enter the merb-book directory.

    $ cd merb-book
  • Checkout the remote branch for the LANGUAGE that you're working on.

    $ gh pull mattetti LANGUAGE
  • Checkout a local copy of your language branch.

    $ gh checkout -b LANGUAGE
  • Do a sanity check.

    $ git branch
  • Set up a remote branch on github for your language.

    $ git push origin LANGUAGE
  • Modify, fix, and add content in your local LANGUAGE branch.

  • Commit your changes into your local Git repository.

    $ git commit -a
  • Merge in the upstream changes.

    $ gh pull --merge mattetti LANGUAGE
  • Push your changes back to github.

    $ git push
  • Send Mattetti a pull request.

For the moment, the content of the book is located inside ./book-content/ and is organized by languages, chapters, and pages.

Chapters and pages must be lowercase and start by a digit followed by a dash and the chapter/page title without spaces or any non ascii characters.

All content files are Markdown files; the merb app uses maruku to render these files. Check the supported syntax or check ./book-content/en/1-introduction/1-ruby.markdown for a good example of how to use images, quotes, and CSS selectors.

The book supports multiple languages. Each language needs to replicate the English folder structure, using the same file names.

If you are copying a page or chapter to your language folder and want to mark a section of your text as requiring translation, just add the to-translate class to the CSS selector of your content, as shown below:

{: .to-translate}

Please follow our editor guidelines, especially:

  • use a language branch (so you can see what changed in the English content)
  • one sentence per line (so merging is easier)

Translation leaders


The content of this book is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 license

The source code of the application is dual licensed under the MIT and GPL licenses:

Something went wrong with that request. Please try again.