How do you create a large number of irb commands?


#1

I’m wondering what you all consider the best way for creating a large
number of irb commands. By commands I’m referring to methods for the
default irb object like irb,fg and jobs. Here are some of the
different ways that come to mind:

To me the only serious options are extending or just defining the
method. By extending I get an ancestry trace on where commands came
from which is important when dealing with a large number of commands.
Also, if i do switch subsessions or workspaces I can just extend in
needed functionality. Since defining methods in the irb object lacks
the ancestry trace and the ability to reuse them in other context, my
vote is for extending.

Thoughts?

Gabriel


#2

On May 13, 11:07 am, ghorner removed_email_address@domain.invalid wrote:

  • Use irb’s internal command system i.e. self.def_extend_command() inhttp://github.com/rubyspec/matzruby/blob/9ca4e66f27e2563512afdd4c70af…
    Thoughts?

Gabriel

I forgot to mention the option of commands as private methods in
Kernel space. Like the include option, I think it’s too dirty as it
gives all objects access to those methods through send(). Although
this doesn’t matter for a couple of commands, it could lead to some
dangerous side effects for many commands. My vote is still with
extending modules.

Gabriel


#3

On May 13, 11:49 am, cldwalker removed_email_address@domain.invalid wrote:

  • Include modules into the default irb object. However this has the
    needed functionality. Since defining methods in the irb object lacks
    this doesn’t matter for a couple of commands, it could lead to some
    dangerous side effects for many commands. My vote is still with
    extending modules.

Gabriel

So I guess no one creates commands in irb?