[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 9b07ad6 15/33: Add gender field class
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 9b07ad6 15/33: Add gender field class |
Date: |
Sun, 3 Sep 2017 17:02:22 -0400 (EDT) |
branch: externals/ebdb
commit 9b07ad678af1185172b959bf19188e558fd34b8f
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Add gender field class
* ebdb.el (ebdb-field-gender): New field class, inheriting from
ebdb-field-singleton.
(ebdb-read, ebdb-string): Base methods.
---
ebdb.el | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/ebdb.el b/ebdb.el
index 535f4ef..e26ebd7 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -2140,6 +2140,46 @@ See `ebdb-url-valid-schemes' for a list of acceptable
schemes."
(signal 'ebdb-unparseable (list "invalid URL scheme"))))
(cl-call-next-method class str slots))
+;; Gender field
+
+(defclass ebdb-field-gender (ebdb-field-user
+ ebdb-field-singleton)
+ ((gender
+ :initarg :gender
+ :initform 'unknown
+ :type symbol
+ :custom (choice
+ ;; Can we make the gender choices a defcustom and
+ ;; construct this automatically?
+ (const :tag "Female" female)
+ (const :tag "Male" male)
+ (const :tag "Other" other)
+ (const :tag "Unknown" unknown)
+ (const :tag "Not applicable" na))))
+ :documentation
+ "A field holding a record's gender."
+ :human-readable "gender")
+
+(cl-defmethod ebdb-read ((class (subclass ebdb-field-gender)) &optional slots
obj)
+ (let* ((choices
+ '(("female" . female)
+ ("male" . male)
+ ("other" . other)
+ ("unknown" . unknown)
+ ("not applicable" . na)))
+ (gender (cdr
+ (assoc-string
+ (ebdb-read-string "Gender: "
+ (when obj (rassoc (slot-value obj 'gender)
+ choices))
+ choices
+ t)
+ choices))))
+ (cl-call-next-method class (plist-put slots :gender gender) obj)))
+
+(cl-defmethod ebdb-string ((field ebdb-field-gender))
+ (symbol-name (slot-value field 'gender)))
+
;;; Fields that change EBDB's behavior.
;;; Mail aliases
- [elpa] externals/ebdb updated (c6bfefc -> a5ffda9), Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 5f8429b 02/33: Use insert/delete methods with edit-field-customize, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 999374c 03/33: Make ebdb-hashtable weak on value, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb b4a24c1 07/33: Revert "Make ebdb-hashtable weak on value", Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb cb92680 04/33: Fix mis-named variable, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb be4168a 05/33: People have hyphens and apostrophes in their surnames, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 235dad2 10/33: Fix to database disabling, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 3d819bc 17/33: Have ebdb-do-records filter out stub uuids, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 423be4d 14/33: Add ebdb-field-singleton abstract field class, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 9b07ad6 15/33: Add gender field class,
Eric Abrahamsen <=
- [elpa] externals/ebdb 123ebae 09/33: Base ebdb-db-save method should be on ebdb-db class, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 63509c6 01/33: Work on getting ebdb-vm.el back into place, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 8291f3d 13/33: Refine database disabling/re-enabling, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 21ed4b7 19/33: Don't hide cl-print-object definitions, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 99a1563 12/33: Fix custom type for database buffer-char slot, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb aa668d7 08/33: Add "force" argument to ebdb-db-save, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 7bed578 11/33: Provide more careful control of finding related records, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 9b1a2cf 25/33: Use simpler home-grown version of char-fold-to-regexp, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb c362c2a 23/33: Protect against searching labeled fields with no label, Eric Abrahamsen, 2017/09/03
- [elpa] externals/ebdb 9ff8795 30/33: Alter migration process to convert various folder fields, Eric Abrahamsen, 2017/09/03