Browse Source

rebar3 format

Namdak Tonpa 3 years ago
parent
commit
b454468eb0
5 changed files with 230 additions and 99 deletions
  1. 1 1
      mix.exs
  2. 16 0
      rebar.config
  3. 1 1
      src/kvs.app.src
  4. 211 96
      src/kvs.erl
  5. 1 1
      src/stores/kvs_rocks.erl

+ 1 - 1
mix.exs

@@ -4,7 +4,7 @@ defmodule KVS.Mixfile do
   def project do
     [
       app: :kvs,
-      version: "8.10.4",
+      version: "8.11.0",
       description: "KVS Abstract Chain Database",
       package: package(),
       deps: deps()

+ 16 - 0
rebar.config

@@ -1,2 +1,18 @@
 {erl_opts, [nowarn_unused_function,nowarn_duplicated_export]}.
 {deps, []}.
+{project_plugins, [rebar3_format]}.
+{format, [
+    {files, ["src/*.erl", "test/*.erl"]},
+    {formatter, otp_formatter},
+    {options, #{ line_length => 108,
+                 paper => 250,
+                 spaces_around_fields => false,
+                 inlining => all,
+                 inline_clause_bodies => true,
+                 inline_expressions => true,
+                 inline_qualified_function_composition => true,
+                 inline_simple_funs => true,
+                 inline_items => all,
+                 inline_fields => true,
+                 inline_attributes => true
+                 }}]}.

+ 1 - 1
src/kvs.app.src

@@ -1,6 +1,6 @@
 {application, kvs,
    [{description, "KVS Abstract Chain Database"},
-    {vsn, "8.10.0"},
+    {vsn, "8.11.0"},
     {registered, []},
     {applications, [kernel,stdlib]},
     {mod, { kvs, []}},

+ 211 - 96
src/kvs.erl

@@ -1,134 +1,249 @@
 -module(kvs).
+
 -behaviour(application).
+
 -behaviour(supervisor).
+
 -include_lib("stdlib/include/assert.hrl").
+
 -include("api.hrl").
+
 -include("metainfo.hrl").
+
 -include("stream.hrl").
+
 -include("cursors.hrl").
+
 -include("kvs.hrl").
+
 -include("backend.hrl").
--export([dump/0,metainfo/0,ensure/1,seq_gen/0,fields/1,defined/2,field/2,setfield/3,cut/2]).
--export([join/2,seq/3]).
--export(?API).
--export(?STREAM).
+
+-export([dump/0,
+         metainfo/0,
+         ensure/1,
+         seq_gen/0,
+         fields/1,
+         defined/2,
+         field/2,
+         setfield/3,
+         cut/2]).
+
+-export([join/2, seq/3]).
+
+-export(?API)
+
+.
+
+-export(?STREAM)
+
+.
+
 -export([init/1, start/2, stop/1]).
--record('$msg', {id,next,prev,user,msg}).
 
-init([])     -> {ok, { {one_for_one, 5, 10}, []} }.
-start(_,_)   -> supervisor:start_link({local, kvs}, kvs, []).
-stop(_)      -> ok.
-dba()        -> application:get_env(kvs,dba,kvs_mnesia).
-kvs_stream() -> application:get_env(kvs,dba_st,kvs_stream).
+-record('$msg', {id, next, prev, user, msg}).
+
+init([]) -> {ok, {{one_for_one, 5, 10}, []}}.
+
+start(_, _) ->
+    supervisor:start_link({local, kvs}, kvs, []).
+
+stop(_) -> ok.
+
+dba() -> application:get_env(kvs, dba, kvs_mnesia).
+
+kvs_stream() ->
+    application:get_env(kvs, dba_st, kvs_stream).
 
 % kvs api
 
-all(Table)         -> all     (Table, #kvs{mod=dba()}).
-delete(Table,Key)  -> delete  (Table, Key, #kvs{mod=dba()}).
-get(Table,Key)     -> ?MODULE:get (Table, Key, #kvs{mod=dba()}).
-index(Table,K,V)   -> index   (Table, K,V, #kvs{mod=dba()}).
-join()             -> join    ([],    #kvs{mod=dba()}).
-dump()             -> dump    (#kvs{mod=dba()}).
-join(Node)         -> join    (Node,  #kvs{mod=dba()}).
-leave()            -> leave   (#kvs{mod=dba()}).
-destroy()          -> destroy (#kvs{mod=dba()}).
-count(Table)       -> count   (Table, #kvs{mod=dba()}).
-put(Record)        -> ?MODULE:put (Record, #kvs{mod=dba()}).
-stop()             -> stop_kvs(#kvs{mod=dba()}).
-start()            -> start   (#kvs{mod=dba()}).
-ver()              -> ver(#kvs{mod=dba()}).
-dir()              -> dir     (#kvs{mod=dba()}).
-feed(Key)          -> feed    (Key, #kvs{mod=dba(),st=kvs_stream()}).
-seq(Table,DX)      -> seq     (Table, DX, #kvs{mod=dba()}).
-remove(Rec,Feed)   -> remove  (Rec, Feed, #kvs{mod=dba(),st=kvs_stream()}).
-
-put(Records,#kvs{mod=Mod}) when is_list(Records) -> Mod:put(Records);
-put(Record,#kvs{mod=Mod})            -> Mod:put(Record).
-get(RecordName, Key, #kvs{mod=Mod})  -> Mod:get(RecordName, Key).
-delete(Tab, Key, #kvs{mod=Mod})      -> Mod:delete(Tab, Key).
-count(Tab,#kvs{mod=DBA})             -> DBA:count(Tab).
-index(Tab, Key, Value,#kvs{mod=DBA}) -> DBA:index(Tab, Key, Value).
-seq(Tab, Incr,#kvs{mod=DBA})         -> DBA:seq(Tab, Incr).
-dump(#kvs{mod=Mod})                  -> Mod:dump().
-feed(Tab,#kvs{st=Mod})               -> Mod:feed(Tab).
-remove(Rec,Feed, #kvs{st=Mod})       -> Mod:remove(Rec,Feed).
-
-all(Tab,#kvs{mod=DBA})   -> DBA:all(Tab).
-start(#kvs{mod=DBA})     -> DBA:start().
-stop_kvs(#kvs{mod=DBA})  -> DBA:stop().
-join(Node,#kvs{mod=DBA}) -> DBA:join(Node).
-leave(#kvs{mod=DBA})     -> DBA:leave().
-destroy(#kvs{mod=DBA})   -> DBA:destroy().
-ver(#kvs{mod=DBA})       -> DBA:version().
-dir(#kvs{mod=DBA})       -> DBA:dir().
+all(Table) -> all(Table, #kvs{mod = dba()}).
+
+delete(Table, Key) ->
+    delete(Table, Key, #kvs{mod = dba()}).
+
+get(Table, Key) ->
+    (?MODULE):get(Table, Key, #kvs{mod = dba()}).
+
+index(Table, K, V) ->
+    index(Table, K, V, #kvs{mod = dba()}).
+
+join() -> join([], #kvs{mod = dba()}).
+
+dump() -> dump(#kvs{mod = dba()}).
+
+join(Node) -> join(Node, #kvs{mod = dba()}).
+
+leave() -> leave(#kvs{mod = dba()}).
+
+destroy() -> destroy(#kvs{mod = dba()}).
+
+count(Table) -> count(Table, #kvs{mod = dba()}).
+
+put(Record) -> (?MODULE):put(Record, #kvs{mod = dba()}).
+
+stop() -> stop_kvs(#kvs{mod = dba()}).
+
+start() -> start(#kvs{mod = dba()}).
+
+ver() -> ver(#kvs{mod = dba()}).
+
+dir() -> dir(#kvs{mod = dba()}).
+
+feed(Key) ->
+    feed(Key, #kvs{mod = dba(), st = kvs_stream()}).
+
+seq(Table, DX) -> seq(Table, DX, #kvs{mod = dba()}).
+
+remove(Rec, Feed) ->
+    remove(Rec, Feed, #kvs{mod = dba(), st = kvs_stream()}).
+
+put(Records, #kvs{mod = Mod}) when is_list(Records) ->
+    Mod:put(Records);
+put(Record, #kvs{mod = Mod}) -> Mod:put(Record).
+
+get(RecordName, Key, #kvs{mod = Mod}) ->
+    Mod:get(RecordName, Key).
+
+delete(Tab, Key, #kvs{mod = Mod}) ->
+    Mod:delete(Tab, Key).
+
+count(Tab, #kvs{mod = DBA}) -> DBA:count(Tab).
+
+index(Tab, Key, Value, #kvs{mod = DBA}) ->
+    DBA:index(Tab, Key, Value).
+
+seq(Tab, Incr, #kvs{mod = DBA}) -> DBA:seq(Tab, Incr).
+
+dump(#kvs{mod = Mod}) -> Mod:dump().
+
+feed(Tab, #kvs{st = Mod}) -> Mod:feed(Tab).
+
+remove(Rec, Feed, #kvs{st = Mod}) ->
+    Mod:remove(Rec, Feed).
+
+all(Tab, #kvs{mod = DBA}) -> DBA:all(Tab).
+
+start(#kvs{mod = DBA}) -> DBA:start().
+
+stop_kvs(#kvs{mod = DBA}) -> DBA:stop().
+
+join(Node, #kvs{mod = DBA}) -> DBA:join(Node).
+
+leave(#kvs{mod = DBA}) -> DBA:leave().
+
+destroy(#kvs{mod = DBA}) -> DBA:destroy().
+
+ver(#kvs{mod = DBA}) -> DBA:version().
+
+dir(#kvs{mod = DBA}) -> DBA:dir().
 
 % stream api
 
-top  (X) -> (kvs_stream()):top (X).
-bot  (X) -> (kvs_stream()):bot (X).
-next (X) -> (kvs_stream()):next(X).
-prev (X) -> (kvs_stream()):prev(X).
-drop (X) -> (kvs_stream()):drop(X).
-take (X) -> (kvs_stream()):take(X).
-save (X) -> (kvs_stream()):save(X).
-cut  (X,Y) -> (kvs_stream()):cut (X,Y).
-add  (X) -> (kvs_stream()):add (X).
-append   (X, Y) -> (kvs_stream()):append (X, Y).
-load_reader (X) -> (kvs_stream()):load_reader(X).
-writer      (X) -> (kvs_stream()):writer(X).
-reader      (X) -> (kvs_stream()):reader(X).
+top(X) -> (kvs_stream()):top(X).
+
+bot(X) -> (kvs_stream()):bot(X).
+
+next(X) -> (kvs_stream()):next(X).
+
+prev(X) -> (kvs_stream()):prev(X).
+
+drop(X) -> (kvs_stream()):drop(X).
+
+take(X) -> (kvs_stream()):take(X).
+
+save(X) -> (kvs_stream()):save(X).
+
+cut(X, Y) -> (kvs_stream()):cut(X, Y).
+
+add(X) -> (kvs_stream()):add(X).
+
+append(X, Y) -> (kvs_stream()):append(X, Y).
+
+load_reader(X) -> (kvs_stream()):load_reader(X).
+
+writer(X) -> (kvs_stream()):writer(X).
+
+reader(X) -> (kvs_stream()):reader(X).
 
 % unrevisited
 
-ensure(#writer{id=Id}) ->
-   case kvs:get(writer,Id) of
-        {error,_} -> kvs:save(kvs:writer(Id)), ok;
-        {ok,_}    -> ok end.
+ensure(#writer{id = Id}) ->
+    case kvs:get(writer, Id) of
+        {error, _} ->
+            kvs:save(kvs:writer(Id)),
+            ok;
+        {ok, _} -> ok
+    end.
 
 cursors() ->
-    lists:flatten([ [ {T#table.name,T#table.fields}
-        || #table{name=Name}=T <- (M:metainfo())#schema.tables, Name == reader orelse Name == writer  ]
-    || M <- modules() ]).
+    lists:flatten([[{T#table.name, T#table.fields}
+                    || #table{name = Name} = T
+                           <- (M:metainfo())#schema.tables,
+                       Name == reader orelse Name == writer]
+                   || M <- modules()]).
 
 % metainfo api
 
-tables()    -> lists:flatten([ (M:metainfo())#schema.tables || M <- modules() ]).
-modules()   -> application:get_env(kvs,schema,[]).
-metainfo()  ->  #schema { name = kvs, tables = core() ++ test_tabs() }.
-core()      -> [ #table { name = id_seq, fields = record_info(fields,id_seq), keys=[thing]} ].
-test_tabs() -> [ #table{name='$msg', fields=record_info(fields,'$msg')} ].
-table(Name) when is_atom(Name) -> lists:keyfind(Name,#table.name,tables());
-table(_)    -> false.
+tables() ->
+    lists:flatten([(M:metainfo())#schema.tables
+                   || M <- modules()]).
+
+modules() -> application:get_env(kvs, schema, []).
+
+metainfo() ->
+    #schema{name = kvs, tables = core() ++ test_tabs()}.
+
+core() ->
+    [#table{name = id_seq,
+            fields = record_info(fields, id_seq), keys = [thing]}].
+
+test_tabs() ->
+    [#table{name = '$msg',
+            fields = record_info(fields, '$msg')}].
+
+table(Name) when is_atom(Name) ->
+    lists:keyfind(Name, #table.name, tables());
+table(_) -> false.
 
 seq_gen() ->
-    Init = fun(Key) ->
-           case kvs:get(id_seq, Key) of
-                {error, _} -> {Key,kvs:put(#id_seq{thing = Key, id = 0})};
-                {ok, _} -> {Key,skip} end end,
-    [ Init(atom_to_list(Name))  || {Name,_Fields} <- cursors() ].
+    Init = fun (Key) ->
+                   case kvs:get(id_seq, Key) of
+                       {error, _} ->
+                           {Key, kvs:put(#id_seq{thing = Key, id = 0})};
+                       {ok, _} -> {Key, skip}
+                   end
+           end,
+    [Init(atom_to_list(Name))
+     || {Name, _Fields} <- cursors()].
 
 initialize(Backend, Module) ->
-    [ begin
-        Backend:create_table(T#table.name, [{attributes,T#table.fields},
-               {T#table.copy_type, [node()]},{type,T#table.type}]),
-        [ Backend:add_table_index(T#table.name, Key) || Key <- T#table.keys ],
-        T
-    end || T <- (Module:metainfo())#schema.tables ].
+    [begin
+         Backend:create_table(T#table.name,
+                              [{attributes, T#table.fields},
+                               {T#table.copy_type, [node()]},
+                               {type, T#table.type}]),
+         [Backend:add_table_index(T#table.name, Key)
+          || Key <- T#table.keys],
+         T
+     end
+     || T <- (Module:metainfo())#schema.tables].
 
 fields(Table) when is_atom(Table) ->
-  case table(Table) of false -> [];
-    T -> T#table.fields end.
+    case table(Table) of
+        false -> [];
+        T -> T#table.fields
+    end.
 
 defined(TableRecord, Field) ->
-  FieldsList = fields(element(1, TableRecord)),
-  lists:member(Field, FieldsList).
+    FieldsList = fields(element(1, TableRecord)),
+    lists:member(Field, FieldsList).
 
 field(TableRecord, Field) ->
-  FieldsList = fields(element(1, TableRecord)),
-  Index = string:str(FieldsList, [Field]) + 1,
-  element(Index, TableRecord).
+    FieldsList = fields(element(1, TableRecord)),
+    Index = string:str(FieldsList, [Field]) + 1,
+    element(Index, TableRecord).
 
 setfield(TableRecord, Field, Value) ->
-  FieldsList = fields(element(1, TableRecord)),
-  Index = string:str(FieldsList, [Field]) + 1,
-  setelement(Index, TableRecord, Value).
+    FieldsList = fields(element(1, TableRecord)),
+    Index = string:str(FieldsList, [Field]) + 1,
+    setelement(Index, TableRecord, Value).

+ 1 - 1
src/stores/kvs_rocks.erl

@@ -59,7 +59,7 @@ run(Key, % key
 
   S = sz(SK),
   Initial_Object = {ref(), []},
-  
+
   Run = fun (F,K,H,V,Acc) when binary_part(K,{0,S}) == SK -> {F(H,Dir),H,[V|Acc]}; % continue +------------+
             (_,K,H,V,Acc) -> stop_it(H),                                           % fail-safe closing     |
                              throw({ok, fd(K), bt(V), [bt(A1) || A1 <- Acc]}) end, % acc unfold            |