File: compat-api-v1.lisp

package info (click to toggle)
cl-mustache 0.12.1-9-g684f227-1
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 188 kB
  • sloc: lisp: 1,860; sh: 20; makefile: 2
file content (73 lines) | stat: -rw-r--r-- 3,130 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
;;;; compat-api-v1.lisp --- APIv1 compatibility package

;;; Copyright (C) 2014  Kan-Ru Chen (陳侃如)

;;; Author(s): Kan-Ru Chen (陳侃如) <kanru@kanru.info>

;;; Permission is hereby granted, free of charge, to any person obtaining a
;;; copy of this software and associated documentation files (the "Software"),
;;; to deal in the Software without restriction, including without limitation
;;; the rights to use, copy, modify, merge, publish, distribute, sublicense,
;;; and/or sell copies of the Software, and to permit persons to whom the
;;; Software is furnished to do so, subject to the following conditions:

;;; The above copyright notice and this permission notice shall be included in
;;; all copies or substantial portions of the Software.

;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
;;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
;;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
;;; DEALINGS IN THE SOFTWARE.

;;;; Code:

(in-package :mustache)

(defvar *mustache-output* (make-synonym-stream '*output-stream*)
  "Deprecated in favor of MUSTACHE:*OUTPUT* since version 0.10.0")

(define-condition deprecation-warning (style-warning)
  ((name :initarg :name :reader deprecated-name)
   (replacements :initarg :replacement :reader deprecated-name-replacement)
   (since :initarg :since :reader deprecated-since))
  (:report (lambda (condition stream)
             (format stream "~S is deprecated since CL-MUSTACHE version ~A. ~
                             Use ~S instead."
                     (deprecated-name condition)
                     (deprecated-since condition)
                     (deprecated-name-replacement condition)))))

(defmacro make-obsolete (obsolete-name current-name when)
  `(defun ,obsolete-name (&rest args)
     ,(documentation current-name 'function)
     (warn 'deprecation-warning
           :name ',obsolete-name :replacement ',current-name :since ,when)
     (apply ',current-name args)))

(make-obsolete mustache-type    version "0.10.0")
(make-obsolete mustache-version version "0.10.0")
(make-obsolete mustache-context make-context "0.10.0")
(make-obsolete mustache-compile compile-template "0.10.0")
(make-obsolete mustache-render  render "0.10.0")
(make-obsolete mustache-render-to-string render* "0.10.0")

(defun mustache-render-to-stream (stream template &optional context)
  "Render TEMPLATE with optional CONTEXT to STREAM."
  (warn 'deprecation-warning
        :name 'mustache-render-to-stream :replacement 'render :since "0.10.0")
  (render template context stream))

(defmacro defmustache (name template)
  #.(documentation 'define 'function)
  (warn 'deprecation-warning
        :name 'defmustache :replacement 'render :since "0.10.0")
  `(define ,name ,template))

;;; compat-api-v1.lisp ends here

;;; Local Variables:
;;; mode: lisp
;;; End: