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

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

[nongnu] elpa/inf-ruby 1b89400e6f 227/265: Add '--nomultiline' with newe


From: ELPA Syncer
Subject: [nongnu] elpa/inf-ruby 1b89400e6f 227/265: Add '--nomultiline' with newer IRB versions
Date: Sat, 9 Jul 2022 21:59:28 -0400 (EDT)

branch: elpa/inf-ruby
commit 1b89400e6ff91fbdf6267d24dcef2804a19d1829
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    Add '--nomultiline' with newer IRB versions
    
    Fixes #127, fixes #128, fixes #130.
---
 inf-ruby.el | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/inf-ruby.el b/inf-ruby.el
index abb2fa4360..f93164ff10 100755
--- a/inf-ruby.el
+++ b/inf-ruby.el
@@ -83,13 +83,15 @@ Also see the description of `ielm-prompt-read-only'."
   :group 'inf-ruby)
 
 (defcustom inf-ruby-implementations
-  '(("ruby"     . "irb --prompt default --noreadline -r irb/completion")
+  '(("ruby"     . inf-ruby--irb-command)
     ("jruby"    . "jruby -S irb --prompt default --noreadline -r 
irb/completion")
     ("rubinius" . "rbx -r irb/completion")
     ("yarv"     . "irb1.9 -r irb/completion")
     ("macruby"  . "macirb -r irb/completion")
     ("pry"      . "pry"))
-  "An alist of ruby implementations to irb executable names."
+  "An alist mapping Ruby implementations to Irb commands.
+CDR of each entry must be either a string or a function that
+returns a string."
   :type '(repeat (cons string string))
   :group 'inf-ruby)
 
@@ -99,6 +101,13 @@ Also see the description of `ielm-prompt-read-only'."
                            inf-ruby-implementations))
   :group 'inf-ruby)
 
+(defun inf-ruby--irb-command ()
+  (let ((command "irb --prompt default --noreadline -r irb/completion")
+        (version (nth 1 (split-string (shell-command-to-string "irb -v") "[ 
(]"))))
+    (when (version<= "1.2.0" version)
+      (setq command (concat command " --nomultiline")))
+    command))
+
 (defcustom inf-ruby-console-environment 'ask
   "Envronment to use for the `inf-ruby-console-*' commands.
 If the value is not a string, ask the user to choose from the
@@ -338,6 +347,8 @@ to that buffer. Otherwise create a new buffer."
   (setq impl (or impl "ruby"))
 
   (let ((command (cdr (assoc impl inf-ruby-implementations))))
+    (when (functionp command)
+      (setq command (funcall command)))
     (run-ruby command impl)))
 
 ;;;###autoload



reply via email to

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