Debouncer

Debouncer library to reduce frequency of function calls to alerts, updates and similar. It supports four different modes:

Example

  Debouncer.apply(SomeKey, fn() -> 
    IO.puts("Hello World, debounced will appear in 5 seconds") 
  end)
  Debouncer.immediate(OtherKey, fn() -> 
    IO.puts("Hello World, will appear immediate, but not again within 5 seconds") 
  end)

Installation

The debouncer can be installed by adding debouncer to your list of dependencies in mix.exs:

def deps do
  [
    {:debouncer, "~> 0.1.0"}
  ]
end

The debouncer is an application and will start a GenServer to trigger the events. To include the Application in your release add it to your extra applications:

  def application do
    [
      mod: {Your.Application, []},
      extra_applications: [:debouncer]
    ]
  end

If it's not started it will try to start itself on usage.

The docs can be found at https://hexdocs.pm/debouncer.