-;;; riece-eval-ruby.el --- evaluate ruby expression
+;;; riece-eval-ruby.el --- evaluate input string as a Ruby program
;; Copyright (C) 1998-2005 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
-;; To use, add the following line to your ~/.riece/init.el:
-;; (add-to-list 'riece-addons 'riece-eval-ruby)
+;; NOTE: This is an add-on module for Riece.
;;; Code:
(require 'riece-ruby)
(require 'riece-message)
-(defvar riece-eval-ruby-enabled nil)
+(defgroup riece-eval-ruby nil
+ "Evaluate input string as a Ruby program."
+ :prefix "riece-"
+ :group 'riece)
+
+(defcustom riece-eval-ruby-prefix-regexp "^,ruby\\s-+"
+ "Pattern of of the prefix for sending Ruby programs."
+ :type 'string
+ :group 'riece-eval-ruby)
(defconst riece-eval-ruby-description
- "Evaluate an input string as Ruby program.")
+ "Evaluate input string as a Ruby program.")
(defun riece-eval-ruby-exit-handler (name)
(riece-ruby-inspect name)
- (let* ((data (copy-sequence riece-ruby-data))
+ (let* ((data (copy-sequence (or riece-ruby-data "nil")))
(length (length data))
(index 0))
(while (< index length)
'notice))))
(defun riece-eval-ruby-display-message-function (message)
- (if (and riece-eval-ruby-enabled
+ (if (and (get 'riece-eval-ruby 'riece-addon-enabled)
(riece-message-own-p message)
- (string-match "^,ruby\\s-+" (riece-message-text message)))
+ (string-match riece-eval-ruby-prefix-regexp
+ (riece-message-text message)))
(let ((name (riece-ruby-execute
(substring (riece-message-text message)
(match-end 0)))))
(add-hook 'riece-after-display-message-functions
'riece-eval-ruby-display-message-function))
-(defun riece-eval-ruby-enable ()
- (setq riece-eval-ruby-enabled t))
-
-(defun riece-eval-ruby-disable ()
- (setq riece-eval-ruby-enabled nil))
+(defun riece-eval-ruby-uninstall ()
+ (remove-hook 'riece-after-display-message-functions
+ 'riece-eval-ruby-display-message-function))
(provide 'riece-eval-ruby)