Просмотр исходного кода

return old behaviour of feed() for bpe compatibility

dxt 4 лет назад
Родитель
Сommit
8f57af1d93
5 измененных файлов с 9 добавлено и 6 удалено
  1. 1 1
      include/stream.hrl
  2. 1 1
      src/layers/kvs_stream.erl
  3. 1 1
      src/stores/kvs_st.erl
  4. 3 3
      test/old_test.exs
  5. 3 0
      test/st_test.exs

+ 1 - 1
include/stream.hrl

@@ -11,7 +11,7 @@
 -spec prev(#reader{}) -> #reader{}.
 -spec drop(#reader{}) -> #reader{}.
 -spec take(#reader{}) -> #reader{}.
--spec feed (term())   -> #reader{}.
+-spec feed (term())   -> list().
 -spec load_reader (term()) -> #reader{}.
 -spec writer (term()) -> #writer{}.
 -spec reader (term()) -> #reader{}.

+ 1 - 1
src/layers/kvs_stream.erl

@@ -50,7 +50,7 @@ w({ok,#writer{cache=B,count=Size}},top,C) -> C#reader{cache={tab(B),id(B)},pos=S
 w({error,X},_,_)                          -> {error,X}.
 
 % section: take, drop
-feed(Feed) -> take((reader(Feed))#reader{args=-1}).
+feed(Feed) -> #reader{args=Args} = take((reader(Feed))#reader{args=-1}), Args.
 
 drop(#reader{cache=[]}=C) -> C#reader{args=[]};
 drop(#reader{dir=D,cache=B,args=N,pos=P}=C)  -> drop(acc(D),N,C,C,P,B).

+ 1 - 1
src/stores/kvs_st.erl

@@ -15,7 +15,7 @@ si(M,T) -> se(#it.id, M, T).
 id(T) -> e(#it.id, T).
 
 % section: next, prev
-feed(Feed) -> take((reader(Feed))#reader{args=-1}).
+feed(Feed) -> #reader{args=Args} = take((reader(Feed))#reader{args=-1}), Args.
 
 top(#reader{feed=Feed}=C) -> #writer{count=Cn} = writer(Feed), read_it(C#reader{count=Cn},seek_it(key(Feed))).
 bot(#reader{feed=Feed}=C) -> #writer{cache=Ch, count=Cn} = writer(Feed), C#reader{cache=Ch, count=Cn, dir=1}.

+ 3 - 3
test/old_test.exs

@@ -25,7 +25,7 @@ defmodule OLD.Test do
     r2 = :kvs.save(:kvs.reader(id2))
     x1 = :kvs.take(KVS.reader(:kvs.load_reader(KVS.reader(r1, :id)), args: 20))
     x2 = :kvs.take(KVS.reader(:kvs.load_reader(KVS.reader(r2, :id)), args: 20))
-    b = KVS.reader(:kvs.feed(id1), :args)
+    b = :kvs.feed(id1)
 
     case :application.get_env(:kvs, :dba_st, :kvs_st) do
       :kvs_st ->
@@ -69,7 +69,7 @@ defmodule OLD.Test do
     :lists.map(fn _ -> :kvs.append({:"$msg", [], [], [], [], []}, feed) end, :lists.seq(1, x))
     KVS.reader(id: rid) = :kvs.save(:kvs.reader(feed))
     t = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 20))
-    b = KVS.reader(:kvs.feed(feed), :args)
+    b = :kvs.feed(feed)
     #: mnesia
     assert KVS.reader(t, :args) == b
   end
@@ -85,7 +85,7 @@ defmodule OLD.Test do
     :kvs.save(KVS.reader(t, dir: 1))
     log("t:", t)
     n = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 5))
-    b = KVS.reader(:kvs.feed(feed), :args)
+    b = :kvs.feed(feed)
     log("n:", n)
     assert KVS.reader(n, :args) == KVS.reader(t, :args)
     assert KVS.reader(t, :args) == b

+ 3 - 0
test/st_test.exs

@@ -15,6 +15,9 @@ defmodule ST.Test do
 
     test "al0", kvs, do: assert kvs[:ids] |> Enum.map(&msg(id: &1)) == :kvs.all(:feed)
     test "al1", kvs, do: assert (kvs[:id0] ++ kvs[:id2] ++ kvs[:id1]) |> Enum.map(&msg(id: &1)) == :kvs.all("/crm/personal/Реєстратор А1/in")
+    
+    #: old behaviour is reversed ? 
+    test "fe0", kvs, do: assert kvs[:ids] |> Enum.reverse |> Enum.map(&msg(id: &1)) == :kvs.feed(:feed)
 
     #: real cache {:feed, :msg, id}
     test "top",  kvs, do: (r0=:kvs.reader(:feed); assert KVS.reader(r0, cache: {:msg, Enum.at(kvs[:ids],0)}, dir: 0) == :kvs.top(r0))