Project

primo

0.02
Repository is archived
No commit activity in last 3 years
No release in over 3 years
A configurable default Rails stack using application templates
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

 Project Readme

Primo

Build Status Code Climate

A configurable default Rails stack.

This is a proof of concept and any feedback is welcome either on GitHub, Twitter, or email.

Inspired by Steve Klabnik's article "Rails has Two Default Stacks" and the awesome Rails application templates.

Why is this useful?

Rails application templates are awesome, especially for hackers that often need to set up the same basic app, but also for companies that want to promote their best pratices. Sadly the ecosystem around them seems to be quite limited. Primo tries to solve this by adding a command line interface for defining your default template and share it with others.

At the moment Primo comes with 1 bundle of templates but it is relatively easy to add your own.

Requirements

  • Rails >= 1.9.2
  • Git

Usage

Basic

$ gem install primo

$ primo new app_name #instead of "rails new app_name"

This generates a PostgreSQL/HAML/Rspec Rails app using this admittedly very basic template.

You can specify a different template as follows

$ primo new app_name --template default-rails # this just runs a plain rails install

Advanced

Using a different template is easy. You can specify them any remote repository and bring in those templates.

# add a new remote
$ primo remote add <name> <git url> #pulls the templates into ~/primo_remotes/<name>/

# list all remotes
$ primo remote list

# remove a remote
$ primo remote rm <name>

# update a remote by pulling in changes
$ primo remote pull <name>

To use templates and set a different default:

# list all templates in all pulled remotes
$ primo template list
+---------------+---------+-----------------------------------------------+
| Name          | Remote  | Path                                          |
+---------------+---------+-----------------------------------------------+
| default-rails | default | /home/vagrant/.primo_remotes/default/rails.rb |
| default-prime | default | /home/vagrant/.primo_remotes/default/prime.rb |
+---------------+---------+-----------------------------------------------+

# view a template content
$ primo template show <name>

# open a template in your editor
$ primo template open <name>

# set your default template to use when creating new projects
$ primo template default <name>

# see your current default
$ primo template default

Release notes

  • 0.1.0 Changed syntax. Now uses infrastructure that supports remotes
  • 0.0.6 Allows for overriding of templates
  • 0.0.5 Adds option to set custom default
  • 0.0.4 Fixing template
  • 0.0.3 Removed direct Rails dependency
  • 0.0.2 Added simple installer for "Prime stack"
  • 0.0.1 Gem skeleton

Contributing

  1. Fork it
  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 new Pull Request

License

See LICENSE