Ruby on rails 扩展IRB主要方法

Ruby on rails 扩展IRB主要方法,ruby-on-rails,ruby,irb,hirb,Ruby On Rails,Ruby,Irb,Hirb,我的应用程序中有一个目录结构。出于开发目的,可能还有其他目的,我目前有一个类X,它有类方法pwd、cd和ls。当我在我的应用程序中输入irb whithin时,是否有办法使这些方法可用,例如: 2.1.5 :0 > pwd /current_dir/ 目前我正在做: 2.1.5 :0 > X.pwd /current_dir/ 这很不方便 我可以简单地向现有类添加一些内容的解决方案将是完美的,如: class X < Irb::main def self.pwd

我的应用程序中有一个目录结构。出于开发目的,可能还有其他目的,我目前有一个类X,它有类方法pwd、cd和ls。当我在我的应用程序中输入irb whithin时,是否有办法使这些方法可用,例如:

2.1.5 :0 > pwd
/current_dir/
目前我正在做:

2.1.5 :0 > X.pwd
/current_dir/
这很不方便

我可以简单地向现有类添加一些内容的解决方案将是完美的,如:

class X < Irb::main
  def self.pwd
    #stuff
  end
end

现在我并不真正了解hirb,但如果有一个解决方案可以与hirb或irb一起使用,我会尝试一下!谢谢你的帮助

在Rails中,当Rails应用程序通过IRB启动时,您可以有条件地将方法混合到控制台中

这是使用application.rb文件中的console配置块完成的

在您的情况下,有几种可能性。您可以简单地将这些方法委托给您的库

module MyApp
  class Application < Rails::Application
    console do

      # delegate pwd to X
      def pwd
        X.pwd
      end

    end
  end
end
或者,如果X是一个模块,您可以将其包括在内

module MyApp
  class Application < Rails::Application
    console do
      Rails::ConsoleMethods.send :include, X
    end
  end
end

在Rails中,当Rails应用程序通过IRB启动时,您可以有条件地将方法混合到控制台中

这是使用application.rb文件中的console配置块完成的

在您的情况下,有几种可能性。您可以简单地将这些方法委托给您的库

module MyApp
  class Application < Rails::Application
    console do

      # delegate pwd to X
      def pwd
        X.pwd
      end

    end
  end
end
或者,如果X是一个模块,您可以将其包括在内

module MyApp
  class Application < Rails::Application
    console do
      Rails::ConsoleMethods.send :include, X
    end
  end
end

太棒了。这正是我需要知道的。谢谢,太棒了。这正是我需要知道的。谢谢