emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/webpaste 6e116ea 166/298: Merge branch 'refactor-away-defv


From: ELPA Syncer
Subject: [nongnu] elpa/webpaste 6e116ea 166/298: Merge branch 'refactor-away-defvars'
Date: Thu, 9 Dec 2021 19:00:07 -0500 (EST)

branch: elpa/webpaste
commit 6e116ea1e0d56456b1c7cacbce255105526b6c6a
Merge: 76d4ddb 62e0f33
Author: Elis Axelsson <elis.axelsson@gmail.com>
Commit: Elis Axelsson <elis.axelsson@gmail.com>

    Merge branch 'refactor-away-defvars'
    
    This refs #18
---
 tests/test-webpaste-provider-creation.el | 24 +++++-----
 webpaste.el                              | 80 ++++++++++++++++----------------
 2 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/tests/test-webpaste-provider-creation.el 
b/tests/test-webpaste-provider-creation.el
index c4540e5..a7f5c3f 100644
--- a/tests/test-webpaste-provider-creation.el
+++ b/tests/test-webpaste-provider-creation.el
@@ -16,24 +16,24 @@
          :uri "http://invalid-domain-name/";
          :post-field "data"
          :sync t
-         :success-lambda (cl-function
-                          (lambda (&key data &allow-other-keys)
-                            (setq used-lambda "success")))
-         :error-lambda (cl-function
-                        (lambda (&key error-thrown &allow-other-keys)
-                          (setq used-lambda "error")))))
+         :success-lambda (lambda () (cl-function
+                                (lambda (&key data &allow-other-keys)
+                                  (setq used-lambda "success"))))
+         :error-lambda (lambda (&rest rest) (cl-function
+                                        (lambda (&key error-thrown 
&allow-other-keys)
+                                          (setq used-lambda "error"))))))
 
   (setq working-provider
         (webpaste-provider
          :uri "https://httpbin.org/status/200";
          :post-field "data"
          :sync t
-         :success-lambda (cl-function
-                          (lambda (&key data &allow-other-keys)
-                            (setq used-lambda "success")))
-         :error-lambda (cl-function
-                        (lambda (&key error-thrown &allow-other-keys)
-                          (setq used-lambda "error"))))))
+         :success-lambda (lambda () (cl-function
+                                (lambda (&key data &allow-other-keys)
+                                  (setq used-lambda "success"))))
+         :error-lambda (lambda (&rest rest) (cl-function
+                                        (lambda (&key error-thrown 
&allow-other-keys)
+                                          (setq used-lambda "error")))))))
 
 
  (it
diff --git a/webpaste.el b/webpaste.el
index c1216e1..8ee39be 100644
--- a/webpaste.el
+++ b/webpaste.el
@@ -100,47 +100,48 @@ precalculated, and also available both for pre and post 
request access.")
 
 
 ;;; Predefined error lambda for providers
-(defvar webpaste/providers-error-lambda
+(cl-defun webpaste/providers-error-lambda (&key text)
+  "Predefined error callback for providers that always does failover."
   (cl-function (lambda (&key error-thrown &allow-other-keys)
                  (message "Got error: %S" error-thrown)
-                 (webpaste-paste-text text)))
-  "Predefined error callback for providers that always does failover.")
+                 (webpaste-paste-text text))))
 
 
-(defvar webpaste/providers-error-lambda-no-failover
+(cl-defun webpaste/providers-error-lambda-no-failover (&key text)
+  "Predefined error callback for providers that shouldn't do failover."
   (cl-function (lambda (&key error-thrown &allow-other-keys)
-                 (message "Got error: %S" error-thrown)))
-  "Predefined error callback for providers that shouldn't do failover.")
+                 (message "Got error: %S" error-thrown))))
 
 
 ;;; Predefined success lambdas for providers
-(defvar webpaste/providers-success-location-header
+(cl-defun webpaste/providers-success-location-header ()
+  "Predefined success callback for providers returning a Location header."
   (cl-function (lambda (&key response &allow-other-keys)
                  (when response
                    (webpaste-return-url
-                    (request-response-header response "Location")))))
-  "Predefined success callback for providers returning a Location header.")
+                    (request-response-header response "Location"))))))
 
 
-(defvar webpaste/providers-success-response-url
+(cl-defun webpaste/providers-success-response-url ()
+  "Predefined success callback for providers that and up with an URL somehow."
   (cl-function (lambda (&key response &allow-other-keys)
                  (when response
                    (webpaste-return-url
-                    (request-response-url response)))))
-  "Predefined success callback for providers that and up with an URL somehow.")
+                    (request-response-url response))))))
 
 
-(defvar webpaste/providers-success-returned-string
+(cl-defun webpaste/providers-success-returned-string ()
+  "Predefined success callback for providers returning a string with URL."
   (cl-function (lambda (&key data &allow-other-keys)
                  (when data
                    (setq data (replace-regexp-in-string "\n$" "" data))
                    (setq data (replace-regexp-in-string "\"" "" data))
 
-                   (webpaste-return-url data))))
-  "Predefined success callback for providers returning a string with URL.")
+                   (webpaste-return-url data)))))
 
 
-(defvar webpaste/providers-default-post-field-lambda
+(cl-defun webpaste/providers-default-post-field-lambda ()
+  "Predefined lambda for building post fields."
   (cl-function (lambda (&key text
                         post-field
                         provider-uri
@@ -155,8 +156,7 @@ precalculated, and also available both for pre and post 
request access.")
                      (if (and post-lang-field-name language-name)
                        ;; Append language to the post-data
                        (cl-pushnew (cons post-lang-field-name language-name) 
post-data))))
-                 post-data))
-  "Predefined lambda for building post fields.")
+                 post-data)))
 
 
 
@@ -183,8 +183,8 @@ precalculated, and also available both for pre and post 
request access.")
                                   (parser 'buffer-string)
                                   (lang-overrides '())
                                   (lang-uri-separator nil)
-                                  (error-lambda 
webpaste/providers-error-lambda)
-                                  (post-field-lambda 
webpaste/providers-default-post-field-lambda)
+                                  (error-lambda 
'webpaste/providers-error-lambda)
+                                  (post-field-lambda 
'webpaste/providers-default-post-field-lambda)
                                   (sync nil))
   "Function to create the lambda function for a provider.
 
@@ -257,16 +257,16 @@ Optional params:
       ;; Do request
       (request uri
                :type type
-               :data (funcall post-field-lambda
+               :data (funcall (funcall post-field-lambda)
                               :text text
                               :provider-uri uri
                               :post-field post-field
                               :post-lang-field-name post-lang-field-name
                               :post-data post-data)
                :parser parser
-               :success success-lambda
+               :success (funcall success-lambda)
                :sync sync
-               :error error-lambda))))
+               :error (funcall error-lambda :text text)))))
 
 
 
@@ -278,7 +278,7 @@ Optional params:
        :post-field "c"
        :lang-uri-separator "/"
        :lang-overrides '((emacs-lisp-mode . "elisp"))
-       :success-lambda webpaste/providers-success-location-header))
+       :success-lambda 'webpaste/providers-success-location-header))
 
     ("ix.io"
      ,(webpaste-provider
@@ -286,7 +286,7 @@ Optional params:
        :post-field "f:1"
        :lang-uri-separator "/"
        :lang-overrides '((emacs-lisp-mode . "elisp"))
-       :success-lambda webpaste/providers-success-returned-string))
+       :success-lambda 'webpaste/providers-success-returned-string))
 
     ("sprunge.us"
      ,(webpaste-provider
@@ -294,7 +294,7 @@ Optional params:
        :post-field "sprunge"
        :lang-uri-separator "?"
        :lang-overrides '((emacs-lisp-mode . "elisp"))
-       :success-lambda webpaste/providers-success-returned-string))
+       :success-lambda 'webpaste/providers-success-returned-string))
 
     ("dpaste.com"
      ,(webpaste-provider
@@ -305,7 +305,7 @@ Optional params:
        :post-field "content"
        :post-lang-field-name "syntax"
        :lang-overrides '((emacs-lisp-mode . "clojure"))
-       :success-lambda webpaste/providers-success-location-header))
+       :success-lambda 'webpaste/providers-success-location-header))
 
     ("dpaste.de"
      ,(webpaste-provider
@@ -314,23 +314,23 @@ Optional params:
        :post-field "content"
        :post-lang-field-name "lexer"
        :lang-overrides '((emacs-lisp-mode . "clojure"))
-       :success-lambda webpaste/providers-success-returned-string))
+       :success-lambda 'webpaste/providers-success-returned-string))
 
     ("gist.github.com"
      ,(webpaste-provider
        :uri "https://api.github.com/gists";
        :post-field nil
-       :post-field-lambda (cl-function (lambda (&key text &allow-other-keys)
-                                         (let ((filename (or 
(file-name-nondirectory (buffer-file-name)) "file.txt")))
-                                           (json-encode `(("description" . 
"Pasted from Emacs with webpaste.el")
-                                                          ("public" . "false")
-                                                          ("files" .
-                                                           ((,filename .
-                                                             (("content" . 
,text))))))))))
-       :success-lambda (cl-function (lambda (&key data &allow-other-keys)
-                                      (when data
-                                        (webpaste-return-url
-                                         (cdr (assoc 'html_url 
(json-read-from-string data)))))))))
+       :post-field-lambda (lambda () (cl-function (lambda (&key text 
&allow-other-keys)
+                                               (let ((filename (or 
(file-name-nondirectory (buffer-file-name)) "file.txt")))
+                                                 (json-encode `(("description" 
. "Pasted from Emacs with webpaste.el")
+                                                                ("public" . 
"false")
+                                                                ("files" .
+                                                                 ((,filename .
+                                                                             
(("content" . ,text)))))))))))
+       :success-lambda (lambda () (cl-function (lambda (&key data 
&allow-other-keys)
+                                            (when data
+                                              (webpaste-return-url
+                                               (cdr (assoc 'html_url 
(json-read-from-string data))))))))))
 
     ("paste.pound-python.org"
      ,(webpaste-provider
@@ -339,7 +339,7 @@ Optional params:
        :post-field "code"
        :post-lang-field-name "language"
        :lang-overrides '((emacs-lisp-mode . "clojure"))
-       :success-lambda webpaste/providers-success-response-url)))
+       :success-lambda 'webpaste/providers-success-response-url)))
 
   "Define all webpaste.el providers.
 Consists of provider name and lambda function to do the actuall call to the



reply via email to

[Prev in Thread] Current Thread [Next in Thread]