我想念ipython的一件事是它有吗?操作员为特定功能挖掘文档。
我知道ruby有一个类似的命令行工具但是当我在irb时调用它非常不方便。
ruby / irb有类似的东西吗?
答案 0 :(得分:6)
Pry是一个Ruby版本的IPython,它支持?
命令查找方法文档,但语法略有不同:
pry(main)> ? File.dirname
From: file.c in Ruby Core (C Method):
Number of lines: 6
visibility: public
signature: dirname()
Returns all components of the filename given in file_name
except the last one. The filename must be formed using forward
slashes (/'') regardless of the separator used on the
local file system.
File.dirname("/home/gumby/work/ruby.rb") #=> "/home/gumby/work"
您还可以使用$
命令查找源代码:
pry(main)> $ File.link
From: file.c in Ruby Core (C Method):
Number of lines: 14
static VALUE
rb_file_s_link(VALUE klass, VALUE from, VALUE to)
{
rb_secure(2);
FilePathValue(from);
FilePathValue(to);
from = rb_str_encode_ospath(from);
to = rb_str_encode_ospath(to);
if (link(StringValueCStr(from), StringValueCStr(to)) < 0) {
sys_fail2(from, to);
}
return INT2FIX(0);
}
有关详细信息,请参阅http://pry.github.com:)
答案 1 :(得分:5)
你可以从
开始irb(main):001:0> `ri Object`
虽然这个输出不够可读。你需要过滤掉一些元字符。
事实上,有人已经提出了a gem for it
gem install ori
然后在irb
irb(main):001:0> require 'ori'
=> true
irb(main):002:0> Object.ri
Looking up topics [Object] o
= Object < BasicObject
------------------------------------------------------------------------------
= Includes:
Java (from gem activesupport-3.0.9)
(from gem activesupport-3.0.9) [...]
答案 2 :(得分:3)
不,它没有。 Python有docstrings:
def my_method(arg1,arg2):
""" What's inside this string will be made available as the __doc__ attribute """
# some code
因此,当从ipython调用?
时,它可能会调用对象上的__doc__
属性。 Ruby没有这个。