# Daiku ## Craft lightweight ruby applications ![Japanese Carpentry](http://upload.wikimedia.org/wikipedia/commons/0/0d/Wagoya_-_Japanese_Roof_Structure.jpg) ### Installation $ gem install daiku ### Updating daiku $ gem update daiku ### Usage To generate a basic app, run the `new` command, passing it the port your local server should listen to incoming requests on. The generated app is whole and complete, and ready to run. $ daiku new myapp --port 5000 $ cd myapp $ bundle install $ bundle exec foreman start $ open http://localhost:5000 Or as a oneliner: daiku new myapp --port 5000 && cd myapp && bundle install && bundle exec foreman start Then visit `http://localhost:5000` in your browser. ### Options You can further customize the app that's generated by passing additional options. The built-in help system explains the available options. $ daiku help new Usage: daiku new APP -p, --port=N Options: -p, --port=N # Port this app should run on locally. [--ruby=RUBY] # Specify the version of ruby this project should use. # Default: 2.1.5 [--node=NODE] # Specify the version of node this project should use (for grunt, etc). # Default: v0.10.33 -a, [--assets=ASSETS] # Choose the assets workflow this project uses. # Possible values: grunt -e, [--errors=ERRORS] # Choose the error reporting lib this project uses. # Possible values: honeybadger -j, [--jobs=JOBS] # Choose the background jobs lib this project uses. # Possible values: sidekiq -m, [--models=MODELS] # Choose the data modeling lib this project uses. # Possible values: datamapper, sequel -M, [--monitors=MONITORS] # Choose the monitoring lib this project uses. # Possible values: newrelic [--vcr] # Include `vcr` in this project's BDD stack? [--sql] # SQL or No-SQL? If SQL, assumes postgresql # Default: true [--version] Generate a new application with daiku ### Example Consider the following example: $ daiku new myapp --port 5000 --models datamapper --assets grunt --errors honeybadger --monitors newrelic --jobs sidekiq --vcr This will generate the following app: ```` myapp ├── .bowerrc ├── .env ├── .gitignore ├── .grunt │   ├── aliases.yaml │   ├── coffee.coffee │   ├── imagemin.coffee │   ├── robotstxt.coffee │   ├── sass.coffee │   ├── slim.coffee │   └── uglify.coffee ├── .node-version ├── .ruby-version ├── .slugignore ├── .travis.yml ├── Gemfile ├── Gruntfile.coffee ├── Procfile ├── README.md ├── Rakefile ├── app.rb ├── assets │   ├── images │   │   └── .gitkeep │   ├── javascripts │   │   └── app.coffee │   ├── pages │   │   └── .gitkeep │   └── stylesheets │   ├── .gitkeep │   └── app.scss ├── bin │   └── console ├── bower.json ├── config │   ├── datamapper.rb │   ├── pony.rb │   ├── puma.rb │   └── sidekiq.rb ├── config.ru ├── lib │   ├── boot.rb │   ├── core_ext │   │   └── frame_options.rb │   ├── errors │   │   ├── .gitkeep │   │   └── app.rb │   ├── jobs │   │   └── .gitkeep │   ├── models │   │   └── .gitkeep │   ├── services │   │   └── .gitkeep │   ├── tasks │   │   ├── .gitkeep │   │   ├── datamapper.rake │   │   └── db.rake │   └── values │   └── .gitkeep ├── package.json ├── public │   ├── assets │   │   └── .gitkeep │   ├── favicon.ico │   └── fonts │   └── .gitkeep ├── spec │   ├── _cassettes │   │   └── .gitkeep │   ├── app_spec.rb │   ├── db_helper.rb │   ├── models │   │   └── .gitkeep │   ├── services │   │   └── .gitkeep │   ├── spec_helper.rb │   └── vcr_helper.rb └── views ├── index.slim └── layout.slim ````