Skip to content
Bob Lail edited this page Oct 26, 2015 · 5 revisions

About Modules

Houston's functionality may be extended through modules. For example:

  • Houston::Slack gives Houston the ability to listen to messages—and respond—via Slack
  • Houston::Alerts gives Houston the ability to sync tasks from arbitrary sources and display them as a unified queue
  • Houston::Feedback adds a view for quickly importing, tagging, and searching project-specific feedback from customers
  • Houston::Roadmap adds a view for planning project milestones

Adding a Module

Add a module to your instance of Houston by listing it in your Gemfile:

gem "houston-alerts", github: "houston/houston-alerts", branch: "master"

and by using it in config/main.rb:

use :alerts

Some modules take configuration blocks:

use :slack do
  token "xoxb-0000000000-abcdefghijklmnopqrstuvwx"
end

Creating a new Module

Houston Modules are Rails Engines. Any routes you define will be mounted at "/" on your Houston instance. You can also create migrations, new models, and extend existing views in Houston as we will see later.

To create a new module, use Houston's generator:

gem install houston-core
houston new --module pomodoro
cd houston-pomodoro
bundle exec rake db:create db:migrate
bundle exec rake db:test:prepare test:all

Note that the module name is Pomodoro, but it is namespaced within Houston:: (and the gem is prefixed with houston-).

Clone this wiki locally