branch: elpa/org-drill
commit 508f2dde21fbf5365e66adc5ba37cc1009f1f44e
Author: Phillip Lord <[email protected]>
Commit: Phillip Lord <[email protected]>
Use persist
---
Cask | 4 ++--
org-drill.el | 24 ++++--------------------
robot/robot.el | 27 ++++++++++++++++++++++++---
3 files changed, 30 insertions(+), 25 deletions(-)
diff --git a/Cask b/Cask
index 64a9bd8b54..c77573eafc 100644
--- a/Cask
+++ b/Cask
@@ -4,7 +4,7 @@
(package-file "org-drill.el")
-(depends-on "org" "9.2")
-
(development
(depends-on "assess"))
+(depends-on "org" "9.2")
+
diff --git a/org-drill.el b/org-drill.el
index 293d7f25b5..742ff540ba 100644
--- a/org-drill.el
+++ b/org-drill.el
@@ -5,7 +5,7 @@
;; Maintainer: Phillip Lord <[email protected]>
;; Author: Paul Sexton <[email protected]>
;; Version: 2.7
-;; Package-Requires: ((emacs "25.3") (seq "2.14") (org "9.2.4"))
+;; Package-Requires: ((emacs "25.3") (seq "2.14") (org "9.2.4") (persist
"0.3"))
;; Keywords: games, outlines, multimedia
;; URL: https://gitlab.com/phillord/org-drill/issues
@@ -56,6 +56,7 @@
(require 'org)
(require 'org-agenda)
(require 'org-id)
+(require 'persist)
(require 'seq)
(defgroup org-drill nil
@@ -408,7 +409,7 @@ matrix data is now stored in the variable
:group 'org-drill
:type 'sexp)
-(defvar org-drill-sm5-optimal-factor-matrix
+(persist-defvar org-drill-sm5-optimal-factor-matrix
nil
"DO NOT CHANGE THE VALUE OF THIS VARIABLE.
@@ -418,20 +419,6 @@ algorithm. The matrix is saved at the end of each drill
session.
Over time, values in the matrix will adapt to the individual user's
pace of learning.")
-(defvar org-drill-persist-location
- (concat user-emacs-directory "org-drill-sm5-optimal-factor-matrix"))
-
-(when (file-exists-p org-drill-persist-location)
- (with-temp-buffer
- (insert-file-contents org-drill-persist-location)
- (setq org-drill-sm5-optimal-factor-matrix
- (read (current-buffer)))))
-
-(defun org-drill-persist ()
- (with-temp-buffer
- (print org-drill-sm5-optimal-factor-matrix (current-buffer))
- (write-region (point-min) (point-max) org-drill-persist-location
- nil 'quiet)))
(defun org-drill--transfer-optimal-factor-matrix ()
(if (and org-drill-optimal-factor-matrix
@@ -2928,7 +2915,7 @@ work correctly with older versions of org mode. Your org
mode version (%s) appea
(t
(org-drill-final-report session)
(if (eql 'sm5 org-drill-spaced-repetition-algorithm)
- (org-drill-save-optimal-factor-matrix))
+ (persist-save 'org-drill-sm5-optimal-factor-matrix))
(if org-drill-save-buffers-after-drill-sessions-p
(save-some-buffers))
(message "Drill session finished!")
@@ -2936,9 +2923,6 @@ work correctly with older versions of org mode. Your org
mode version (%s) appea
(message nil)
))))
-(defun org-drill-save-optimal-factor-matrix ()
- (org-drill-persist))
-
(defun org-drill-cram (&optional scope drill-match)
"Run an interactive drill session in 'cram mode'. In cram mode,
all drill items are considered to be due for review, unless they
diff --git a/robot/robot.el b/robot/robot.el
index ef1f4c2af6..f7053b8632 100644
--- a/robot/robot.el
+++ b/robot/robot.el
@@ -35,9 +35,7 @@
(set-buffer buffer)
(write-region (point-min) (point-max)
(concat top-dir "robot/" file)
- nil 'dont-display-wrote-file-message
- ))))
-
+ nil 'dont-display-wrote-file-message))))
(add-hook 'debugger-mode-hook
'robot-dump-in-a-bit)
@@ -69,3 +67,26 @@
org-drill-cards-in-this-emacs n)
'external-debugging-output)
(kill-emacs -1)))
+
+;; Move the package-user-dir somewhere local
+(require 'package)
+(setq package-user-dir
+ (concat
+ default-directory
+ "elpa"))
+
+(package-initialize)
+
+;; Borrowed from use-package
+(defun robot-ensure-elpa (package &optional no-refresh)
+ (if (package-installed-p package)
+ t
+ (if (and (not no-refresh))
+ (package-read-all-archive-contents))
+ (if (or (assoc package package-archive-contents) no-refresh)
+ (package-install package)
+ (progn
+ (package-refresh-contents)
+ (robot-ensure-elpa package t)))))
+
+(robot-ensure-elpa 'persist)