Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

README, small fix and version bump

  • Loading branch information...
commit 24a493ca6274093670ac20e81db3964c2538e9f3 1 parent a63cb5d
@nicferrier authored
Showing with 79 additions and 3 deletions.
  1. +75 −0 README.creole
  2. +4 −3 kv.el
View
75 README.creole
@@ -0,0 +1,75 @@
+A collection of tools for dealing with key/value data structures such
+as plists, alists and hash-tables.
+
+=== kvalist->hash alist &rest hash-table-args ===
+
+Convert //alist// to a HASH.
+
+//hash-table-args// are passed to the hash-table creation.
+
+
+=== kvalist->keys alist ===
+
+Get just the keys from the alist.
+
+
+=== kvalist->plist alist ===
+
+Convert an alist to a plist.
+
+
+=== kvalist->values alist ===
+
+Get just the values from the alist.
+
+
+=== kvalist-sort alist pred ===
+
+Sort //alist// (by key) with //pred//.
+
+
+=== kvalist-sort-by-value alist pred ===
+
+Sort //alist// by value with //pred//.
+
+
+=== kvdotassoc expr table ===
+
+Dotted expression handling with [[assoc]].
+
+
+=== kvdotassoc-fn expr table func ===
+
+Use the dotted //expr// to access deeply nested data in //table//.
+
+//expr// is a dot separated expression, either a symbol or a string.
+For example:
+
+{{{
+ "a.b.c"
+}}}
+
+or:
+
+{{{
+ 'a.b.c
+}}}
+
+If the //expr// is a symbol then the keys of the alist are also
+expected to be symbols.
+
+//table// is expected to be an alist currently.
+
+//func// is some sort of [[assoc]] like function.
+
+
+=== kvdotassq expr table ===
+
+Dotted expression handling with [[assq]].
+
+
+=== kvhash->alist hash ===
+
+Convert //hash// to an ALIST.
+
+
View
7 kv.el
@@ -4,7 +4,7 @@
;; Author: Nic Ferrier <nferrier@ferrier.me.uk>
;; Keywords: lisp
-;; Version: 0.0.2
+;; Version: 0.0.3
;; Maintainer: Nic Ferrier <nferrier@ferrier.me.uk>
;; Created: 7th September 2012
@@ -46,14 +46,15 @@ HASH-TABLE-ARGS are passed to the hash-table creation."
(defun kvhash->alist (hash)
"Convert HASH to an ALIST."
- (let (store)
+ (when hash
+ (let (store)
(maphash
(lambda (key value)
(setq
store
(append (list (cons key value)) store)))
hash)
- store))
+ store)))
(defun kvalist->plist (alist)
"Convert an alist to a plist."
Please sign in to comment.
Something went wrong with that request. Please try again.