Hammer Compiler



Under the hood of the beautiful mac app, is our Hammer compiler. It’s really useful to know more about this critical part of the Hammer tool, in order to make the most out of your Hammer experience.

##It’s Open Source

Did you know that? The Riot Crew actually made the Hammer compiler open-source back in 2014, though without much in the way of external contributions since then, it’s remained part of our core development duties.

It Can Be Updated Remotely

Back when Hammer was distributed via the Mac App Store, many of the app store reviews cited a lack of updates and proclaimed the app as abandonware. Whilst this eventually turned out to be a reality, it wasn’t entirely the case. The Riot team and our developers were updating and releasing new versions of the Hammer compiler remotely, without the need for Mac App Store release cycles.

To see what version of the Compiler you are running, check out the version label at the bottom of the sites list.

##It’s Just Ruby
Just like popular static site generators Jekyll and Middleman, Hammer is written in the ruby programming language. Unlike those platforms, Hammer also has a beautiful native macOS user interface.

If you know ruby code, you can read and contribute to Hammer.

You Can Run non-official Versions

We will release the Hammer compiler updates globally when we’re satisfied that the new features are tested and stable. If you want to help us test, or are generally curious about the latest functionality, then you can install the most bleeding-edge version of the compiler on your local machine.

To do this, open the Terminal and enter this command at the prompt:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/RiotHQ/hammer-gem/latest/scripts/update.rb)"

This script will take you through the process automatically.

If you wish to install any other branch, simple change the above command with the relevant branch name:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/RiotHQ/hammer-gem/<YOUR_BRANCH>/scripts/update.rb)"

Hammer requires system ruby for >10.9, which is ruby 2.0.0, in case you’re using RVM or rbenv for ruby development and may have different ruby versions in play.

You may also need to install the bundler gem

gem install bundler or sudo gem install bundler

Read the :book: Hammer Docs for the main features.

I’ll try in further posts on this thread, start to explain how the underlying Compiler code works, how it’s structured, so you can think about how it applies to you and if you’d like to contribute to the project, please make a Pull Request.