branch: externals/greader
commit 440c54631519d2b21b6acfffe058b80be9e76267
Author: Michelangelo Rodriguez <[email protected]>
Commit: Michelangelo Rodriguez <[email protected]>

    Refactor: Simplify "greader-build-args" function
    
    The "greader-build-args" function has been refactored to be more
    concise and idiomatic.
    
    The new implementation replaces the previous mix of "append", "cond",
    and "dolist" with a more streamlined approach using "push", "when-let",
    and "nreverse".
    
    This change improves readability and maintainability by using
    standard Elisp constructs for list manipulation. The removal of
    "not-implemented" values is also handled more cleanly with "delete".
---
 greader.el | 37 +++++++++++--------------------------
 1 file changed, 11 insertions(+), 26 deletions(-)

diff --git a/greader.el b/greader.el
index 7a4fde5a4d..d6cbc8f3e9 100644
--- a/greader.el
+++ b/greader.el
@@ -529,32 +529,17 @@ Optional argument EVENT ."
 (defun greader-build-args ()
   "Build the string that will be passed to the back-end."
   (greader-reset)
-  (let (args arg)
-    (setq arg
-         (greader-call-backend 'rate))
-    (setq args (append `(,arg) args))
-    (cond ((greader-call-backend 'lang)
-          (setq arg
-                (greader-call-backend 'lang))
-          (setq args (append `(,arg) args))))
-    (cond ((greader-call-backend 'punctuation)
-          (setq arg (greader-call-backend 'punctuation))
-          (setq args (append `(,arg) args))))
-    (setq greader-backend (greader-call-backend 'executable))
-    (cond
-     (
-      (not
-       (eq
-       (greader-call-backend 'extra)
-       'not-implemented))
-      (setq arg (greader-call-backend 'extra))
-      (setq args (append `(,arg) args))))
-    (catch 'deleted
-      (dolist (argument args)
-       (when (equal argument 'not-implemented)
-         (setq args (delete argument args))
-         (throw 'deleted t))))
-    (setq greader-backend (append `(,greader-backend) args))))
+  (let (args)
+    (push (greader-call-backend 'rate) args)
+    (when-let ((lang (greader-call-backend 'lang)))
+      (push lang args))
+    (when-let ((punc (greader-call-backend 'punctuation)))
+      (push punc args))
+    (when-let ((extra (greader-call-backend 'extra)))
+      (unless (eq extra 'not-implemented)
+        (push extra args)))
+    (setq greader-backend (append greader-backend
+                                (delete 'not-implemented (nreverse args))))))
 
 (defun greader-reset ()
   "Reset greader."

Reply via email to