This is a long-overdue rewrite of a previous project of mine, jeriko/app_drone
Dronr is your Rails 4 workhorse. Boring application setup, fully automated!
Dronr is opinionated, designed to promote best practices and coding patterns, and doesn't aim to provide installations for the totality of existing things.
$ gem install dronr
$ dronr new MyApp
You can also supply a path to a valid register file
$ dronr new MyApp --template templates/prototyping.yml
Or try a popular configuration (coming soon)
$ dronr new MyApp --template https://dronr.recombinary.com/templates/api_server.yml
The dronr new
command runs like so:
- Generate app structure (like
rails new
) with custom config (e.g.--skip-test-unit
if RSpec was declared) - Install dronr gem in newly generated app & generate binstub
- Set up register file if a template register was supplied (more on this later)
- Invoke
dronr up
to run any new drones
If your app was not generated with the dronr new
command, you can bootstrap it by navigating to the app directory and running:
$ bundle exec dronr bootstrap
with an optional template argument
$ bundle exec dronr bootstrap --template templates/prototyping.yml
This will install the dronr gem, generate a binstub, and copy the template register.
Be aware that existing apps might already have undergone manual installation of some drones you may want to add. I'll add more info here later.
Coming soon.
Register a drone for installation by adding it's name to the 'incoming' list in .dronr.yml
incoming:
- rspec
- simple_form
- ...
Whenever you're ready to run new changes:
$ bin/dronr up
Drone work their way from incoming
, to bundled
(once a drone's gems have been installed), to finished
(once a drone's installation commands have been executed).
Note that it may take multiple iterations of dronr up
to complete the entire process. This is because gems & config are changing so code may need to be reloaded.
- Fork it ( https://github.com/[my-github-username]/dronr/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request