Skip to content

wkhere/reprise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.