Create mocks of erlang modules with elixir_mock v0.2.9 ThinkingElixir 001: News and Meet the Hosts

`Blocked` released! Keep track of when hotfixes can be removed

Blocked is an Elixir-library that helps you to keep track of when hotfixes can be removed by showing compile-time warnings when issues (in your project repository or any other source-code GitHub repository) are closed. versionBuild StatusDocumentation

Blocked was made to improve the quality of your project’s code over time: It automates away the human task of checking whether certain hot-fixes, ‘temporary patches’ or ‘duct-tape code’ are still required. This makes it less scary to add a temporary workaround to your codebase, because you’ll know the minute it is no longer necessary!

Basic features:

  • Runs at compile-time as a macro.
  • Prints a compile-time warning any time an issue is closed that a piece of your code was waiting for.
  • Works for your own project issues as well as for issues of any other GitHub-hosted repository.
  • Allows specifying both ‘hotfix’ and optionally a ‘desired’ code block, to make it clear to future readers of your code what can be changed once the related issue is closed.
  • Configurable to work on private repositories as well.
  • By default performs only checking in Continuous Integration, to keep local compilation fast.

Simple usage example

defmodule Example do
  require Blocked

  def main do
    IO.puts("Hello, world!")"#42", "This code can be removed when the issue is closed") do
    # The reason is optional"#69") do
    # It is possible to indicate
    # the desired 'ideal' code as well, by passing an `else` block:"#1337") do
    # If the blockage is more general, you can also leave out the `do` block."#65535", "This whole module can be rewritten once we're on the new Elixir version!")
    # Blocked supports many ways of referring to an issue"#13")"elixir#13")"elixir/13")"elixir-lang/elixir#13")"elixir-lang/elixir/13")"")

Find it on GitHub and talk about it on the Elixir Forum! :-)

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.