Skip to content
Simplified module reloader for Elixir
Elixir
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
mix.exs
mix.lock

README.md

Reprise

Build Status hex.pm version hex.pm downloads hex.pm downloads/week hex.pm license

A simplified module reloader for Elixir.

It differs from its predecessors (exreloader, mochiweb reloader) in a way that it scans only beam files of the current mix project and the current env.

Usage

Reprise is best used on dev environment, that's usually where you need reloading of modules. Here goes an example on how to do this:

  • add to deps: {:reprise, "~> 0.5", only: :dev}

  • add to apps:

    def application do
      dev_apps = Mix.env == :dev && [:reprise] || []
      [ applications: dev_apps ++ your_apps ]
    end

Then your modules will be reinjected into your node - iex session for instance - with a nice log report, each time you recompile them. Here's an example how it looks like:

iex> 12:14:59.163 [info] Reloaded modules: [Rockside.HTML.DSL, Rockside]

The default interval between scans for changed modules is 1 second. You can check it and set a new one - the unit is milliseconds:

iex(1)> Reprise.Server.interval
1000
iex(2)> Reprise.Server.interval(2000)
{:ok, [prev: 1000]}

License

The code is released under the BSD 2-Clause License.

Something went wrong with that request. Please try again.