[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/inf-ruby e4cf0593da 116/265: inf-ruby-console-gem: require
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/inf-ruby e4cf0593da 116/265: inf-ruby-console-gem: require the main file if it exists |
Date: |
Sat, 9 Jul 2022 21:59:18 -0400 (EDT) |
branch: elpa/inf-ruby
commit e4cf0593daa236a19e45a24c4af6668f15dace89
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>
inf-ruby-console-gem: require the main file if it exists
---
inf-ruby.el | 39 ++++++++++++++++++++++++---------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/inf-ruby.el b/inf-ruby.el
index 1303c5c9f4..de3df8fd4d 100755
--- a/inf-ruby.el
+++ b/inf-ruby.el
@@ -651,21 +651,27 @@ Gemfile, it should use the `gemspec' instruction."
"bundle exec irb"
"bundle exec irb -I lib")
"irb -I lib"))
- files)
+ (name (inf-ruby-file-contents-match
+ gemspec "\\.name[ \t]*=[ \t]*\"\\([^\"]+\\)\"" 1))
+ args files)
(unless (file-exists-p "lib")
(error "The directory must contain a 'lib' subdirectory"))
- (dolist (item (directory-files "lib"))
- (unless (file-directory-p (format "lib/%s" item))
- (setq files (cons item files))))
- (run-ruby (concat base-command " "
- ;; If there are several files under 'lib'
- ;; (unlikely), load them all.
- (mapconcat
- (lambda (file)
- (concat " -r " (file-name-sans-extension file)))
- files
- ""))
- "gem")))
+ (let ((feature (and name (replace-regexp-in-string "-" "/" name))))
+ (if (and feature (file-exists-p (concat "lib/" feature ".rb")))
+ ;; There exists the main file corresponding to the gem name,
+ ;; let's require it.
+ (setq args (concat " -r " feature))
+ ;; Let's require all non-directory files under lib, instead.
+ (dolist (item (directory-files "lib"))
+ (unless (file-directory-p (format "lib/%s" item))
+ (push item files)))
+ (setq args
+ (mapconcat
+ (lambda (file)
+ (concat " -r " (file-name-sans-extension file)))
+ files
+ ""))))
+ (run-ruby (concat base-command args) "gem")))
;;;###autoload
(defun inf-ruby-console-default (dir)
@@ -683,10 +689,13 @@ Gemfile, it should use the `gemspec' instruction."
(run-ruby "bundle console")))))
;;;###autoload
-(defun inf-ruby-file-contents-match (file regexp)
+(defun inf-ruby-file-contents-match (file regexp &optional match-group)
(with-temp-buffer
(insert-file-contents file)
- (re-search-forward regexp nil t)))
+ (when (re-search-forward regexp nil t)
+ (if match-group
+ (match-string match-group)
+ t))))
;;;###autoload (dolist (mode ruby-source-modes) (add-hook (intern (format
"%s-hook" mode)) 'inf-ruby-minor-mode))
- [nongnu] elpa/inf-ruby b767d52caf 066/265: inf-ruby-console-gem: Pass -r arguments in the bundle exec case, too, (continued)
- [nongnu] elpa/inf-ruby b767d52caf 066/265: inf-ruby-console-gem: Pass -r arguments in the bundle exec case, too, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby d18e63e44e 102/265: Not real need for the third argument, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 3a68ee2bb1 086/265: Touch up docstrings, change the signatures of inf-ruby-complete[-or-tab], ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 9f0cea55f0 073/265: Extend usage section, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 870e27f1ee 125/265: Detect pry gem in case to run bundle exec pry., ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 6c85470ce4 110/265: inf-ruby-implementations: use '--noreadline', ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 524a86c90b 089/265: Set PAGER locally unless it's set, fixes #33, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 2d65630b7d 100/265: Introduce `ruby-switch-to-last-ruby-buffer', ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 2cb21b9f58 090/265: Make PAGER override unconditional, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 23929579a6 124/265: Merge pull request #57 from bbatsov/compilation-warnings, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby e4cf0593da 116/265: inf-ruby-console-gem: require the main file if it exists,
ELPA Syncer <=
- [nongnu] elpa/inf-ruby 27acc75257 113/265: inf-ruby-console-rails: prompt for the environment, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 0697315485 109/265: Merge pull request #52 from abicky/support-dir-without-traiing-slash, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 451aa1d858 145/265: Merge pull request #71 from jasonko/master, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 46917f463c 151/265: Integrate with projectile-rails-server-mode, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 4962bb076e 141/265: inf-ruby-console-patterns-alist: Accept predicate function in cars, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby c59d7d0a23 134/265: inf-ruby-console-default: Prioritize console.rb if it exists, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby e91b349e4f 168/265: Hook up inf-ruby-auto-exit inside inf-ruby-auto-enter, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 106972ded1 165/265: Touch up docstrings and rename MODE-VAR to MODE, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 0ed06255ec 179/265: Allow running multiple ruby processes, ELPA Syncer, 2022/07/09
- [nongnu] elpa/inf-ruby 536a68528c 184/265: Make ruby-last-ruby-buffer buffer-local, ELPA Syncer, 2022/07/09