Skip to content

Releases: dragonwasrobot/ex_rerun

Ignore pattern filter

02 Feb 03:17
Compare
Choose a tag to compare

Added

Adds the property ignore_pattern to the ex_rerun configuration:

config :ex_rerun,
  ...
  ignore_pattern: ~r{\.?#(.)}

which provides some finer granularity to ignore temporary or autogenerated files
that happens to have a file type that is in the file_types list. For example,
the pattern above, ~r{\.?#(.)}, ignores Emacs auto-save and interlocking files
as these files happen to have similar filenames as the files they are related to
but prepended with a # or .#. The default value for ignore_pattern is
nil, meaning no further filtering is performed.

Bumps the version Elixir version used for compiling ex_rerun to 1.9.

Pluggable tasks

24 Mar 18:52
Compare
Choose a tag to compare

Changed

Changes the configuration format to the following:

config :ex_rerun,
  scan_interval: 4000,
  silent: false,
  file_types: [".ex", ".exs", ".eex", ".json"],
  paths: ["lib", "priv"],
  tasks: [:elixir]

where:

  • scan_interval specifies the number of ms to wait between rerun checks,
  • silent toggles whether to print the output of the tasks registered, every
    time ex_rerun runs,
  • file_types lists which file types that will trigger a rerun when changed,
  • paths lists which folders to monitor, and
  • tasks enumerates the mix tasks to run each time a code modification
    occurs, possible built-in values are: :elixir, :test, :escript,
    where
    • :elixir recompiles Elixir source code (same as Mix.Tasks.Compile.Elixir),
    • :test reruns any mix tests in the project (same as Mix.Tasks.Test), and
    • escript rebuilds a escript file (same as Mix.Tasks.Escript.Build).

Furthermore, tasks can also include custom mix tasks. For example, the hex
package elm_compile defines the
Mix.Tasks.Compile.Elm task which allows mix to also compile Elm files in a mix
project. An example project config using ex_rerun and elm_compile might look
like so:

config :ex_rerun,
  file_types: [".elm", ".ex", ".exs", ".eex", ".json"],
  paths: ["lib", "priv", "web"],
  tasks: [:elixir, Mix.Tasks.Compile.Elm]

Another example of a custom mix task could be to generate API documentation for
a project based on a set of RAML files.

Initial release

24 Mar 18:38
Compare
Choose a tag to compare

Added

  • Support for monitoring Elixir and other source files and running mix tasks on
    code modification changes using the following configuration parameters:
# Default values
config :ex_rerun,
  scan_interval: 4000,
  silent: false,
  elm: false,
  test: false,
  escript: false,
  paths: ["lib", "priv"],
  file_types: [".ex", ".exs", ".eex", ".json"]

where:

  • scan_interval specifies the number of ms to wait between rerun checks,
  • silent toggles whether to print every time ex_rerun recompiles,
  • elm toggles whether to run the elm compilation task on recompile, requires
    elm_compile to be installed as a
    project dependency,
  • test toggles whether to also run mix test after each recompilation,
  • escript toggles whether to run the escript compilation task on recompile,
  • paths lists which folders to monitor, and
  • file_types lists which files that will trigger a rerun when changed.