| Line | |
|---|
| 1 | #| |
|---|
| 2 | Copyright (C) 2008 David Owen <dsowen@fugue88.ws> |
|---|
| 3 | |
|---|
| 4 | This program is free software: you can redistribute it and/or modify |
|---|
| 5 | it under the terms of the GNU Lesser Public License as published by |
|---|
| 6 | the Free Software Foundation, either version 3 of the License, or |
|---|
| 7 | (at your option) any later version. |
|---|
| 8 | |
|---|
| 9 | This program is distributed in the hope that it will be useful, |
|---|
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 12 | GNU Lesser Public License for more details. |
|---|
| 13 | |
|---|
| 14 | You should have received a copy of the GNU Lesser Public License |
|---|
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
|---|
| 16 | |# |
|---|
| 17 | |
|---|
| 18 | (defpackage #:dso-simple-template-env |
|---|
| 19 | (:use #:cl) |
|---|
| 20 | (:export #:env #:env-value)) |
|---|
| 21 | |
|---|
| 22 | (in-package #:dso-simple-template-env) |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | (defclass env () |
|---|
| 27 | ((table :type hash-table :initform (make-hash-table :test 'equal) |
|---|
| 28 | :reader table))) |
|---|
| 29 | |
|---|
| 30 | (defgeneric env-value (env name &optional default) |
|---|
| 31 | (:method ((env env) name &optional default) |
|---|
| 32 | (gethash name (table env) default))) |
|---|
| 33 | |
|---|
| 34 | (defgeneric (setf env-value) (value env name) |
|---|
| 35 | (:method (value (env env) name) |
|---|
| 36 | (setf (gethash name (table env)) value))) |
|---|
Note: See
TracBrowser
for help on using the repository browser.