Skip to content
Erlang/Elixir helpers
Elixir Erlang
Branch: master
Clone or download
qhool Merge pull request #8 from eksperimental/patch-1
Replace depecrated String.from_char_list!/1  function
Latest commit 0bb123a Oct 7, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
include start adding tests Feb 11, 2014
lib
src create Quaff.Constants Feb 9, 2014
test
.gitignore add apache-2 license Feb 10, 2014
.travis.yml Set MIX_ENV Jan 24, 2015
LICENSE add apache-2 license Feb 10, 2014
README.md add travis badge Feb 25, 2014
mix.exs Update aleppo depedency and fix the syntax Feb 20, 2016
rebar.config.script use patched rebar-elixir-plugin Aug 17, 2014

README.md

Build Status

Quaff

Quaff is a set of tools for integrating Elixir into erlang applications (or vice versa).

Quaff.Constants

This module parses erlang header files, and imports any constants as @ attributes. A constant means a -define macro which evaluates to a constant term, and takes no arguments (though it may use macros which accept arguments). Constants whose names start with a capital letter will have an underscore prepended, for compatibility with Elixir syntax.

app/include/app_header.hrl:

-define(CONSTANT_FROM_APP,5)

lib/mymodule.ex:

defmodule MyModule
   require Quaff.Constants
   Quaff.Constants.include_lib("app/include/app_header.hrl")

   def myfunc() do
     @_CONSTANT_FROM_APP + 10
   end
end

Quaff.Debug

The Debug module provides a simple helper interface for running Elixir code in the erlang graphical debugger, using the technique I described in this posting.

Interactive Elixir (0.12.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>  Quaff.Debug.start() #start the graphical debugger
{:ok, #PID<0.59.0>}
iex(2)>  Quaff.Debug.load("./lib/mymodule.ex") #load all modules in source file
lib/mymodule.ex:1: redefining module My.Module
lib/mymodule.ex:212: redefining module My.OtherModule
[module: My.Module, module: My.OtherModule]
iex(3)>  Quaff.Debug.load(Yet.AnotherModule) #load a module by name
{:module, Yet.AnotherModule}

Also provided is nload(module) (equivalent to load(module, all_nodes: true)), which debugs the module[s] on all known nodes.

You can’t perform that action at this time.