Archangel

Archangel is currently under development. It is not ready for production use.

Travis CI Coverage Status Code Climate Dependency Status

This project rocks and uses MIT-LICENSE.

Requirements

  • Ruby >= 2.2.2
  • Rails >= 5.0

Deploying to Heroku

Deploy a sample application to play with.

Deploy

Installation

Add to your application's Gemfile

gem "archangel", github: "archangel/archangel"

Run the bundle command

bundle install

Run the install generator

bundle exec rails g archangel:install

Run the install generator with seed data

bundle exec rails g archangel:install --seed

Seed data can be created separately by running rake db:seed

Themes

In your application, generate a theme named foobar

bundle exec rails g archangel:theme --theme-name=foobar

In your application, generate a theme named foo_bar

bundle exec rails g archangel:theme --theme-name="foo bar"

If you do not pass a theme-name flag, it will generate a new theme with the name "unknown theme"

Updating

Subsequent updates can be done by bumping the version in your Gemfile then adding the new migrations

bundle exec rake archangel:install:migrations

Run migrations

bundle exec rake db:migrate

Testing

First, generate a dummy application. You will be required to generate a dummy application before running tests.

bundle exec rake dummy_app

Run tests

bundle exec rake

or

bundle exec rake spec

or

bundle exec rspec spec

You can also enable fail fast in order to stop tests at the first failure

bundle exec rspec spec --fail-fast

Documentation

Yard is used to generate documentation.

yard

List all undocumented objects

yard stats --list-undoc

Yard server with auto-recompile

yard server --reload

Code Analysis

Hound is used as the code analyzer. When making a pull request, you may get comments on style and quality violations.

RuboCop

RuboCop is a Ruby static code analyzer.

rubocop

Reek

Reek is a code smell detector for Ruby.

reek

JSHint

jshint is a Javascript style analyzer.

Install globally with

npm install -g jshint

Run jshint

jshint ./app/assets/javascripts

ESLint

eslint is a Javascript style analyzer.

Install globally with

npm install -g eslint

Run eslint

eslint ./app/assets/javascripts

scss-lint

scss-lint is a SCSS style analyzer.

scss-lint

Brakeman

Brakeman is a static analysis security vulnerability scanner.

brakeman

Contributing

  1. Fork it ( https://github.com/archangel/archangel/fork )
  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 a new Pull Request