README.md

# Crawlex

`Crawlex` allows you to crawl into your elixir files inside your application,
calculate comment-to-code ratio of each file, and aggregate those ratios to find the average ratio or percentage.

## Installation

To install `Crawlex`, put the following dependency inside your `mix.exs` file

```elixir
defp deps do
  [
    ...
    {:crawlex, "~> 0.1.0", only: :dev, runtime: false},
    ...
  ]
end
```

This will gives you some `mix tasks` that you could use to calculate comment-to-code ratio of your application or project files.

## How to Use

To calculate Comment-to-Code ratio (CCR) of your elixir project your could run:

```elixir
mix crawlex
```

This will print CCR , total lines, and total comments of each file under your application `/lib` folder
and calculate the average of you application's CCR at the bottom of the report.

To find CCR of a specific directory you could specify the directory path as follows:

```elixir
mix crawlex path/to/your/directory
```

To find CCR of a single (elixir) file you could specify the file path instead:

```elixir
mix crawlex path/to/your/elixir/file.ex
```

## Calculating CCR

`Crawlex` will not count empty lines in a file hence empty lines will not contribute to total lines of code nor CCR.

When you generate a CCR report using Crawlex, it will gives a CCR category according to following simple rule:
  * Average CCR is 0 - 5%   : `HORRIBLE`
  * Average CCR is 5 - 10%  : `POOR`
  * Average CCR is 10 - 15% : `AVERAGE`
  * Average CCR is 15 - 25% : `GOOD`
  * Average CCR is > 25%    : `EXCELLENT`

In a CCR report generated by `Crawlex`, any files that falls under category `AVERAGE`, `GOOD`, or `EXCELLENT` will be colored green. Otherwise, red.