Getting Started
Last updated 18 July 2016Setting up Trailblazer in projects is usually not more than installing a few gems.
This guide will walk you through the configuration of all major frameworks such as Rails, Sinatra, Hanami and Roda.
Installation
As Trailblazer is highly modular, you have to make sure you include the correct gems in your Gemfile
.
Here’s a Gemfile
example for a Rails application.
gem "trailblazer"
gem "trailblazer-rails"
# optional, in case you want Cells.
gem "trailblazer-cells"
gem "cells-erb" # Or cells-haml, cells-slim, cells-hamlit.
gem "cells-rails"
This will also load reform
and reform-rails
making the integration very smooth.
Here’s a sample Gemfile
for a non-Rails project that doesn’t use Active*
.
gem "trailblazer"
gem "trailblazer-loader" # optional, if you want us to load your concepts.
gem "reform", ">= 2.2.0"
gem "dry-validation", ">= 0.8.0"
# optional, in case you want Cells.
gem "trailblazer-cells"
gem "cells-erb" # Or cells-haml, cells-slim, cells-hamlit.
Note that you need to invoke the loader manually. Usually, this would happen in an initializer.
Trailblazer::Loader.new.(concepts_root: "./concepts/") do |file|
require_relative(file)
end
Configuration
You can configure what validation engine you want to use.
In Rails, use an initializer, e.g. config/initializer/trailblazer.rb
for that.
Rails.application.config.reform.validations = :dry
If omitted, ActiveModel::Validations
will be configured, per default.
To set the default validation engine, it’s easiest to monkey-patch Reform itself.
Reform::Form.send(:feature, Reform::Form::ActiveModel::Validations)
For dry-validations
:
Reform::Form.send(:feature, Reform::Form::Dry)
Simply for a matter of readability, this should be done before you start defining forms.
Note that you can still use alternative validations per form class.
Stack
- Slim recommended (works with all gems such as Formular)