summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_util.erl
diff options
context:
space:
mode:
authorDamien F. Katz <damien@apache.org>2008-10-02 16:06:10 +0000
committerDamien F. Katz <damien@apache.org>2008-10-02 16:06:10 +0000
commit82d31aa2671ac3ffc7b1dbf4c6c9b6c38f0d9f2e (patch)
tree8dcc9c8b2100189ee41c4a657b90335a3c68f8fe /src/couchdb/couch_util.erl
parentf825477e9d9502d618aa1cb19bdced4df941e872 (diff)
HTTPd refactoring. Moved most code out of couch_httpd into associated modules (couch_httpd_view, couch_httpd_db, couch_httpd_misc_handlers). Also a fix to removed previous doc_by_seq index entries on compaction retry.
git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@701173 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_util.erl')
-rw-r--r--src/couchdb/couch_util.erl18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/couchdb/couch_util.erl b/src/couchdb/couch_util.erl
index 0f10c904..e6d6226b 100644
--- a/src/couchdb/couch_util.erl
+++ b/src/couchdb/couch_util.erl
@@ -16,7 +16,7 @@
-export([should_flush/0, should_flush/1]).
-export([new_uuid/0, rand32/0, implode/2, collate/2, collate/3]).
-export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
--export([encodeBase64/1, decodeBase64/1, to_hex/1]).
+-export([encodeBase64/1, decodeBase64/1, to_hex/1,parse_term/1,dict_find/3]).
-include("couch_db.hrl").
@@ -45,6 +45,13 @@ to_hex([H|T]) ->
to_digit(N) when N < 10 -> $0 + N;
to_digit(N) -> $a + N-10.
+
+
+parse_term(Bin) when is_binary(Bin)->
+ parse_term(binary_to_list(Bin));
+parse_term(List) ->
+ {ok, Tokens, _} = erl_scan:string(List ++ "."),
+ erl_parse:parse_term(Tokens).
% returns a random integer
@@ -249,3 +256,12 @@ enc(C) ->
dec(C) ->
62*?st(C,43) + ?st(C,47) + (C-59)*?st(C,48) - 69*?st(C,65) - 6*?st(C,97).
+
+
+dict_find(Key, Dict, DefaultValue) ->
+ case dict:find(Key, Dict) of
+ {ok, Value} ->
+ Value;
+ error ->
+ DefaultValue
+ end.