我的应用程序中有一个目录结构。为了开发目的(可能更远),我目前有一个类X,它有类方法pwd、cd和ls。当我在应用程序中输入irb时,是否有办法使这些方法可用,例如:
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的解决方案,我就试一试!谢谢你的帮忙!
发布于 2015-01-17 09:55:55
在Rails中,当Rails应用程序通过IRB启动时,可以有条件地将方法混合到控制台中。
这是使用console配置块在您的application.rb文件中完成的。
module MyApp
class Application < Rails::Application
# ...
console do
# define the methods here
end
end
end在你的例子中,有几种可能性。您可以简单地将这些方法委托给库。
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
endhttps://stackoverflow.com/questions/27998113
复制相似问题