README.md in rfix-1.0.7 vs README.md in rfix-1.0.8.pre.108

- old
+ new

@@ -1,39 +1,92 @@ -# Rfix [![Build Status](https://travis-ci.org/oleander/rfix-rb.svg?branch=master)](https://travis-ci.org/oleander/rfix-rb) ![Gem](https://img.shields.io/gem/dt/rfix) +# :bug: Rfix [![Build Status](https://travis-ci.org/oleander/rfix-rb.svg?branch=master)](https://travis-ci.org/oleander/rfix-rb) [![Gem](https://img.shields.io/gem/dt/rfix)](https://rubygems.org/gems/rfix) -RuboCop CLI that only complains about your latest changes +RuboCop CLI that only lints and auto-fixes code you committed by utilizing `git-log` and `git-diff`. Rfix CLI makes it possible to lint (`rfix lint`) and auto-fix (`rfix local|origin|branch`) code changes since a certain point in history. You can auto-fix code committed since creating the current branch (`rfix origin`) or since pushing to upstream (`rfix local`). +Includes a RuboCop formatter with syntax highlighting and build in hyperlinks for offense documentation. + +Holds the same CLI arguments as RuboCop. Run `rfix --help` for a complete list or `rfix` for supported commands. Here are a few examples to get you started: + +- `rfix local` Auto-fixes commits not yet pushed to upstream +- `rfix origin` Auto-fixes commits between `HEAD` and origin branch +- `rfix lint` Lints commits and untracked files not yet pushed to upstream + +![Printscreen](resources/ps.png) + ## Installation ``` shell -$ gem install rfix -$ rfix <local|branch|origin|info|all> [--dry] [--help] +$ gem install rfix [--pre] ``` +## Help + +``` shell +$ rfix branch "branch" # Fix changes made between HEAD and <branch> +$ rfix origin # Fix changes made between HEAD and origin branch +$ rfix local # Fix changes not yet pushed to upstream branch +$ rfix info # Display runtime dependencies and their versions +$ rfix all # Fix all files in this repository (not recommended) +$ rfix lint # Shortcut for 'rfix local --dry --untracked' +$ rfix # Displays this list of supported commands +``` + +### Arguments + +- `--dry` Turns off RuboCops autofix feature (read-only mode) +- `--help` Displays RubyCops and Rfix supported arguments +- `--list-files` List all files being passed to RubyCop +- `--untracked` Include files not tracked by git +- `--config` Configuration file, defaults to `.rubocop.yml` + ## Development -- `git clone https://github.com/oleander/rfix-rb` -- `cd rfix-rb` -- `bundle install` -- `bundle exec rake setup` -- `bundle exec rake local` -- `bundle exec rake spec` +### Setup +1. Download repository + - `$ git clone https://github.com/oleander/rfix-rb` + - `$ cd rfix-rb` +2. Downloads fixtures and run time dependencies + - `$ make dir fetch` + - `$ bundle install` + +### Install from repository + +``` shell +$ bundle exec rake install +``` + +### Run tests + +``` shell +$ bundle exec rake spec +``` + ## Overcommit +Add the following to your `.overcommit.yml`, then run `overcommit --install` and `overcommit --sign pre-commit`. Lints commits not yet pushed to your upstream branch whenever `git commit` is ran. + ``` yaml PreCommit: RFix: enabled: true - command: ["rfix", "local", "--untracked", "--dry"] - description: "Lint changes since last push using RuboCop" + command: ["rfix", "lint"] + description: "Lint unchanged commits using RuboCop" parallelize: true ``` +### From scratch + +1. `gem install overcommit rfix` +2. `curl https://raw.githubusercontent.com/oleander/rfix-rb/master/resouces/overcommit.yml > .overcommit.yml` +3. `overcommit --install` +4. `overcommit --sign pre-commit` + +Run `overcommit --run` to test the new hook. + ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/oleander/rfix. - ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).