Bump version to 0.1.6
diff --git a/README.org b/README.org
index 9511729..a4fe2f0 100644
--- a/README.org
+++ b/README.org
@@ -22,12 +22,12 @@
with an erlang function. The function will be applied to each
output event from the query.
-# Usage #
+* Usage
To use goldrush in your application, you need to define it as a rebar dep or
include it in erlang's path.
-Before composing modules, you'll need to define a query. The query syntax is
+Before composing modules, you'll need to define a query. The query syntax
matches any number of `{erlang, terms}' and is composed as follows:
* Simple Logic
@@ -55,7 +55,7 @@
Select all events where 'a' does not exist.
#+BEGIN_EXAMPLE
- glc:nf(a, 0).
+ glc:nf(a).
#+END_EXAMPLE
Select no input events. User as a black hole query.
@@ -72,22 +72,22 @@
* Combined Logic
- Combined logic is defined as logic matching multiple event filters
-Select all events where both 'a' `and' 'b' exists and are greater than 0.
+Select all events where both 'a' AND 'b' exists and are greater than 0.
#+BEGIN_EXAMPLE
glc:all([glc:gt(a, 0), glc:gt(b, 0)]).
#+END_EXAMPLE
-Select all events where 'a' `or' 'b' exists and are greater than 0.
+Select all events where 'a' OR 'b' exists and are greater than 0.
#+BEGIN_EXAMPLE
glc:any([glc:gt(a, 0), glc:gt(b, 0)]).
#+END_EXAMPLE
-Select all events where 'a' `and' 'b' exists where 'a' is greater than 1 and 'b' is less than 2.
+Select all events where 'a' AND 'b' exists where 'a' is greater than 1 and 'b' is less than 2.
#+BEGIN_EXAMPLE
glc:all([glc:gt(a, 1), glc:lt(b, 2)]).
#+END_EXAMPLE
-Select all events where 'a' `or' 'b' exists where 'a' is greater than 1 and 'b' is less than 2.
+Select all events where 'a' OR 'b' exists where 'a' is greater than 1 and 'b' is less than 2.
#+BEGIN_EXAMPLE
glc:any([glc:gt(a, 1), glc:lt(b, 2)]).
#+END_EXAMPLE
@@ -119,9 +119,7 @@
#+END_EXAMPLE
-# Handling Events #
-
-At this point you will be able to handle an event using a compiled query.
+- At this point you will be able to handle an event using a compiled query.
Begin by constructing an event list.
#+BEGIN_EXAMPLE
@@ -167,20 +165,24 @@
#+END_EXAMPLE
-## How to build ##
+* Build
- `$ ./rebar compile`
+#+BEGIN_EXAMPLE
+ $ ./rebar compile
+#+END_EXAMPLE
or
- `$ make`
+#+BEGIN_EXAMPLE
+ $ make
+#+END_EXAMPLE
-## CHANGELOG ##
+* CHANGELOG
-### 0.1.6 ###
+0.1.6
- Add notfound event matching
-### 0.1.5 ###
+0.1.5
- Rewrite to make highly crash resilient
- per module supervision
- statistics data recovery
diff --git a/src/glc.erl b/src/glc.erl
index bf82333..8b119bd 100644
--- a/src/glc.erl
+++ b/src/glc.erl
@@ -177,11 +177,11 @@
%% data associated with the query must be released using the {@link delete/1}
%% function. The name of the query module is expected to be unique.
%% The counters are reset by default, unless Reset is set to false
--spec compile(atom(), list()) -> {ok, atom()}.
+-spec compile(atom(), glc_ops:op() | [glc_ops:op()]) -> {ok, atom()}.
compile(Module, Query) ->
compile(Module, Query, true).
--spec compile(atom(), list(), boolean()) -> {ok, atom()}.
+-spec compile(atom(), glc_ops:op() | [glc_ops:op()], boolean()) -> {ok, atom()}.
compile(Module, Query, Reset) ->
{ok, ModuleData} = module_data(Module, Query),
case glc_code:compile(Module, ModuleData) of
@@ -228,9 +228,9 @@
ManageParams = manage_params_name(Module),
ManageCounts = manage_counts_name(Module),
- [ begin
- supervisor:terminate_child(Sup, Name),
- supervisor:delete_child(Sup, Name)
+ _ = [ begin
+ ok = supervisor:terminate_child(Sup, Name),
+ ok = supervisor:delete_child(Sup, Name)
end || {Sup, Name} <-
[{gr_manager_sup, ManageParams}, {gr_manager_sup, ManageCounts},
{gr_param_sup, Params}, {gr_counter_sup, Counts}]
@@ -279,16 +279,16 @@
ManageCounts = manage_counts_name(Module),
Counters = [{input,0}, {filter,0}, {output,0}],
- supervisor:start_child(gr_param_sup,
+ _ = supervisor:start_child(gr_param_sup,
{Params, {gr_param, start_link, [Params]},
transient, brutal_kill, worker, [Params]}),
- supervisor:start_child(gr_counter_sup,
+ _ = supervisor:start_child(gr_counter_sup,
{Counts, {gr_counter, start_link, [Counts]},
transient, brutal_kill, worker, [Counts]}),
- supervisor:start_child(gr_manager_sup,
+ _ = supervisor:start_child(gr_manager_sup,
{ManageParams, {gr_manager, start_link, [ManageParams, Params, []]},
transient, brutal_kill, worker, [ManageParams]}),
- supervisor:start_child(gr_manager_sup, {ManageCounts,
+ _ = supervisor:start_child(gr_manager_sup, {ManageCounts,
{gr_manager, start_link, [ManageCounts, Counts, Counters]},
transient, brutal_kill, worker, [ManageCounts]}),
[{params,Params}, {counters, Counts}].
diff --git a/src/glc_lib.erl b/src/glc_lib.erl
index b466f2b..18deaf7 100644
--- a/src/glc_lib.erl
+++ b/src/glc_lib.erl
@@ -265,7 +265,6 @@
%% @private Assert that a term is a valid filter.
%% If the term is a valid filter. The original term will be returned.
%% If the term is not a valid filter. A `badarg' error is thrown.
--spec valid(glc_ops:op()) -> boolean() | no_return().
valid(Term) ->
is_valid(Term) orelse erlang:error(badarg, [Term]),
Term.
diff --git a/src/goldrush.app.src b/src/goldrush.app.src
index afaefe6..2b607a3 100644
--- a/src/goldrush.app.src
+++ b/src/goldrush.app.src
@@ -1,6 +1,6 @@
{application, goldrush, [
{description, "Erlang event stream processor"},
- {vsn, "0.1.5"},
+ {vsn, "0.1.6"},
{registered, []},
{applications, [kernel, stdlib, syntax_tools, compiler]},
{mod, {gr_app, []}},
diff --git a/src/gr_counter.erl b/src/gr_counter.erl
index b8da06a..0824f82 100644
--- a/src/gr_counter.erl
+++ b/src/gr_counter.erl
@@ -160,7 +160,7 @@
Waiting = State#state.waiting,
State2 = case TableId of
undefined -> State#state{waiting=[Call|Waiting]};
- _ -> handle_update_counter(TableId, Counter, Value),
+ _ -> _ = handle_update_counter(TableId, Counter, Value),
State
end,
{noreply, State2};
@@ -178,9 +178,9 @@
%% @end
%%--------------------------------------------------------------------
handle_info({'ETS-TRANSFER', TableId, _Pid, _Data}, State) ->
- [ gen_server:reply(From, perform_call(TableId, Call))
+ _ = [ gen_server:reply(From, perform_call(TableId, Call))
|| {Call, From} <- State#state.waiting ],
- [ handle_update_counter(TableId, Counter, Value)
+ _ = [ handle_update_counter(TableId, Counter, Value)
|| {update, Counter, Value} <- State#state.waiting ],
{noreply, State#state{table_id=TableId, waiting=[]}};
handle_info(_Info, State) ->
diff --git a/src/gr_param.erl b/src/gr_param.erl
index 125e7e3..96da689 100644
--- a/src/gr_param.erl
+++ b/src/gr_param.erl
@@ -188,7 +188,7 @@
%% @end
%%--------------------------------------------------------------------
handle_info({'ETS-TRANSFER', TableId, _Pid, _Data}, State) ->
- [ gen_server:reply(From, perform_call(TableId, Call))
+ _ = [ gen_server:reply(From, perform_call(TableId, Call))
|| {Call, From} <- State#state.waiting ],
{noreply, State#state{table_id=TableId, waiting=[]}};
handle_info(_Info, State) ->