/pimp

Pasteable Images Markup Pad

Primary LanguageRuby

PIMP - Pasteable Images Markdown Pad

TODO: Add badges!

Setting up project locally

Live project: pimp.suhail.uberspace.de

Recommended environment:

Setup:

  • $ git clone git@github.com:jmuheim/pimp.git
  • $ cd pimp
  • $ bundle install

You can use direnv to automatically add bin to your $PATH. Otherwise you should always use bundle exec to run commands.

Be sure to have Pandoc installed (on Mac: $ brew install pandoc).

Developing

  • In one terminal, enter $ server to start the development server using rerun (which will take care of restarting the server upon changes of important config files)
  • In a second terminal, enter $ guard to start Guard, which automatically takes care of:
  • Open http://localhost:PORT in your browser (use whatever port you specified in config/boot.rb)

Before merging a pull request

Make sure that:

  • All CRUD functionality is covered (as far as possible) by inherited_resources
  • All authorization is done through cancancan
  • The ability.rb file is thoroughly tested
  • Every action has a correlating feature spec file (nest them in folders similar to the nested routes' structure)
  • Every navigation item has a correlating spec in navigation_spec.rb
  • Run $ i18n-tasks normalize
  • Run $ rake and make sure, no specs are pending/failing
  • Run $ smusher app/assets/images ...

Add external assets (libraries)

At the time being, Bower integration strategies for Rails are prone to problems. We stick to the traditional gems and hope, that some time soon, there's an official Bower integration strategy.

I18n

The i18n-tasks gem makes handling translations easily. It helps finding unused and not yet translated keys, and normalizes (e.g. sorts) the translation files.

  • $ i18n-tasks normalize, then commit
  • $ i18n-tasks unused, then remove unused keys and commit
  • $ i18n-tasks add-missing -v 'TRANSLATE: %{value}', then translate everything (do a project search for TRANSLATE:) and commit

Testing

  • Use @chrome or @selenium flag to visually run feature tests in Chrome or Firefox.

Deployment

Setup

To learn more about setting up deployment on a server, see Deployment.

Deploying

Before deploying, run $ rake HEADHUNTER=true to make sure all HTML and CSS is in good shape!

Before deploying, run $ i18-tasks add-missing and translate the added I18n keys!

Be sure you have committed and pushed all wanted changes, then execute $ mina deploy! Use the --verbose and --trace switch for debugging if something goes wrong.

That's all, folks!

Backlog

You can find the backlog here: BACKLOG.md.

Services

You can find informations about external services in use here: SERVICES.md.