diff options
| author | Phillip Lord <phillip.lord@russet.org.uk> | 2019-07-08 22:15:28 +0100 |
|---|---|---|
| committer | Phillip Lord <phillip.lord@russet.org.uk> | 2019-07-08 22:20:35 +0100 |
| commit | 508f2dde21fbf5365e66adc5ba37cc1009f1f44e (patch) | |
| tree | 2ac094698e70a7101a4894e77485b8224c03165e | |
| parent | a91c6101b9d81d1e19af6fb8edfbfdff3bd2b876 (diff) | |
| download | org-drill-508f2dde21fbf5365e66adc5ba37cc1009f1f44e.tar.gz org-drill-508f2dde21fbf5365e66adc5ba37cc1009f1f44e.zip | |
Use persist
| -rw-r--r-- | Cask | 4 | ||||
| -rw-r--r-- | org-drill.el | 24 | ||||
| -rw-r--r-- | robot/robot.el | 27 |
3 files changed, 30 insertions, 25 deletions
@@ -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 293d7f2..742ff54 100644 --- a/org-drill.el +++ b/org-drill.el @@ -5,7 +5,7 @@ ;; Maintainer: Phillip Lord <phillip.lord@russet.org.uk> ;; Author: Paul Sexton <eeeickythump@gmail.com> ;; 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 ef1f4c2..f7053b8 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) |
