Current section
Files
Jump to
Current section
Files
lib/git_hist.ex
defmodule GitHist do
@moduledoc """
Documentation for `GitHist`.
This library helps to get file history (Mostly in couple with task-tracker)
For example, I have an Api and want to show tasks history for users
```
defmodule FooApi do
use GitHist, filter_by_regex: ~r/JIRA-\d?/
...
end
```
After this module has new method: commit_history
```
FooApi.commit_history() # =>
[
"JIRA-1 Initial of Foo API",
"JIRA-13 Bugfix of method bar",
...
"JIRA-245 New method added - zar"
]
```
"""
defmacro __using__(opts) do
quote do
@params unquote(opts)
@filter_by_regex Keyword.get(@params, :filter_by_regex, ~r/.*/)
@file Keyword.get(@params, :file, __ENV__.file)
@commits GitHist.Git.file_commit_history(@file)
def commit_history do
{:ok, commits} = @commits
Enum.filter(commits, &String.match?(&1, @filter_by_regex))
end
end
end
end