[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb b52cdc0 265/350: Record-insert|delete-field method
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb b52cdc0 265/350: Record-insert|delete-field methods can find their own slots |
Date: |
Mon, 14 Aug 2017 11:46:51 -0400 (EDT) |
branch: externals/ebdb
commit b52cdc02627412f32a92afea5509818081fea6d1
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Record-insert|delete-field methods can find their own slots
* ebdb.el (ebdb-record-insert-field, ebdb-record-delete-field):
Provide implementation of these methods where slot is nil, they find
the slot, and then pass off to more specific methods.
Step one in refactoring ebdb-record-field-slot-query inside of
ebdb-record-insert|delete-field.
---
ebdb.el | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/ebdb.el b/ebdb.el
index dab4f98..ef833e8 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -1987,7 +1987,9 @@ record."
(ebdb-record-insert-field record slot new-field)
new-field)))
-(cl-defmethod ebdb-record-insert-field ((record ebdb-record) slot field)
+(cl-defmethod ebdb-record-insert-field ((record ebdb-record)
+ (slot symbol)
+ (field ebdb-field))
"Add FIELD to RECORD's SLOT."
;; First, the databases "actually" add the field to the record, ie
;; persistence. The rest of this method is just updating the
@@ -2003,7 +2005,18 @@ record."
(ebdb-init-field field record))
field)
-(cl-defmethod ebdb-record-delete-field ((record ebdb-record) slot field)
+(cl-defmethod ebdb-record-insert-field ((record ebdb-record)
+ slot
+ (field ebdb-field))
+ (let ((real-slot
+ (car (ebdb-record-field-slot-query
+ (eieio-object-class record)
+ `(nil . ,(eieio-object-class field))))))
+ (cl-call-next-method record real-slot field)))
+
+(cl-defmethod ebdb-record-delete-field ((record ebdb-record)
+ (slot symbol)
+ (field ebdb-field))
"Delete FIELD from RECORD's SLOT, or set SLOT to nil, if no FIELD."
;; We don't use `slot-makeunbound' because that's a huge pain in the
;; ass, and why would anyone want those errors?
@@ -2014,6 +2027,15 @@ record."
(setf (slot-value record slot) nil))
(ebdb-delete-field field record))
+(cl-defmethod ebdb-record-delete-field ((record ebdb-record)
+ slot
+ (field ebdb-field))
+ (let ((real-slot
+ (car (ebdb-record-field-slot-query
+ (eieio-object-class record)
+ `(nil . ,(eieio-object-class field))))))
+ (cl-call-next-method record real-slot field)))
+
(cl-defgeneric ebdb-record-field-slot-query (record-class &optional query
alist)
"Ask RECORD-CLASS for information about its interactively-settable fields.
- [elpa] externals/ebdb e5bdee2 278/350: Rework ebdb-mail-yank, (continued)
- [elpa] externals/ebdb e5bdee2 278/350: Rework ebdb-mail-yank, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8dd1600 273/350: Change type of anniversary field dates, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 57b2514 276/350: Use ebdb-with-record-edits in more places, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb f44a797 286/350: New function ebdb-mua-in-ebdb-buffer, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4ce353e 237/350: Migrate more search routines to the ebdb-search-display thing, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 7040cad 247/350: Expand ebdb-helm to complete on mails as well, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a6bc423 249/350: Remove unused customization groups, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4ded53d 250/350: All vCard lines should be delimited with CRLF, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a776d37 248/350: Don't use copy-sequence plus add-text-properties on strings, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 96b113d 251/350: New functions for folding/unfolding long vCard lines, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb b52cdc0 265/350: Record-insert|delete-field methods can find their own slots,
Eric Abrahamsen <=
- [elpa] externals/ebdb fcee6ab 267/350: Protect against no current record when redisplaying, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb f3b9525 269/350: Temporarily abandon having record-change-name accept strings, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 1a31515 274/350: Fixes to record loading, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 01262e3 277/350: Mark EBDB buffers as modified after edits, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb cc83f62 197/350: Add protection around ebdb-record-uuid, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4f3db7f 195/350: Save match data around ebdb-parse-i18n, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb fcf0702 275/350: Mark EBDB buffers as unmodified after save, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 88f5e12 261/350: Fill out functionality of gnorb messages field, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a81769c 272/350: Allow custom hash predicates, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb e80753a 264/350: Change ebdb-record-change-name to accept strings, Eric Abrahamsen, 2017/08/14