Add a helpers library

This way different modules can use it without getting weird circular
dependencies.
This commit is contained in:
Tom Willemse 2016-10-19 21:03:08 +02:00
parent b2e36aaad5
commit a0b9627c7f
2 changed files with 46 additions and 23 deletions

View file

@ -119,31 +119,10 @@ To start off, first I need to enable lexical binding.
* Helper functions
I have noticed that I refer to the combination of
=user-emacs-directory= and "data/" a lot, so I wrote this function
to make referencing it cleaner. Also useful if I ever want to move
my data directory.
I have some helper functions stored away in a separate file.
#+BEGIN_SRC emacs-lisp
(defun oni:data-location (file-name)
"Return the location of FILE-NAME within my data directory.
This is currently the data directory under the
`user-emacs-directory'."
(concat user-emacs-directory "data/" file-name))
#+END_SRC
I also wrote a test for it.
#+BEGIN_SRC emacs-lisp
(with-eval-after-load 'ert
(ert-deftest oni:data-location ()
"Test that `oni:data-location' returns the correct locations."
(should (string= "~/.emacs.d/data/backup-files/"
(oni:data-location "backup-files/")))
(should (string= "~/.emacs.d/data/auto-save-files/"
(oni:data-location "auto-save-files/")))
(should (string= "~/.emacs.d/data/auto-save-list/.saves-"
(oni:data-location "auto-save-list/.saves-")))))
(require 'oni-helpers)
#+END_SRC
* Backups

View file

@ -0,0 +1,44 @@
;;; oni-helpers.el --- Helper functions for Emacs init -*- lexical-binding: t; -*-
;; Copyright (C) 2016 Tom Willemse
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: convenience
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Helpers for my Emacs init.
;;; Code:
(defun oni:data-location (file-name)
"Return the location of FILE-NAME within my data directory.
This is currently the data directory under the
`user-emacs-directory'."
(concat user-emacs-directory "data/" file-name))
(with-eval-after-load 'ert
(ert-deftest oni:data-location ()
"Test that `oni:data-location' returns the correct locations."
(should (string= "~/.emacs.d/data/backup-files/"
(oni:data-location "backup-files/")))
(should (string= "~/.emacs.d/data/auto-save-files/"
(oni:data-location "auto-save-files/")))
(should (string= "~/.emacs.d/data/auto-save-list/.saves-"
(oni:data-location "auto-save-list/.saves-")))))
(provide 'oni-helpers)
;;; oni-helpers.el ends here