繁体   English   中英

有没有什么办法可以将注释嵌入到可以通过irb或rails c输出的Ruby方法中?

[英]is there any way to embed a comment in a Ruby method that could be outputted via irb or rails c

有没有办法做这样的事情:

>Location.get_info 
......
>Location.get_info --help
outputs info on the location; lazily loads hours 

在哪里将输出嵌入为rdoc样式注释? 我希望能够为我们的Rails应用程序提供一组种子命令的快速文档

谢谢

你几乎可以用红宝石建造所有东西...

我认为没有图书馆可以做您想要的。

从您张贴在IRB标签上的猜测中,您想帮助人们使用您的代码。

在这种情况下,您可以告诉他们使用撬动并使用show-doc功能

[2] pry(main)> show-doc User#url

From: /Users/paule/Documents/rails/on_ruby/app/models/user.rb @ line 39:
Owner: User
Visibility: public
Signature: url()
Number of lines: 1

generates a homepage url for a user

方法不是对象,因此您不能在其中存储任何内容。

可以使用Object#method方法获得绑定方法的代理对象,并使用Module#instance_method方法获得未绑定方法的代理对象,但是,该代理对象仅仅是代理对象。 特别是,不能保证当您请求一个代理对象时总是得到相同的代理对象。

因此,如果您为某个方法获取一个代理对象,然后在其中存储一些文档,然后再为同一方法获取另一个代理对象,则这可能是一个不同的代理对象,其中没有文档。

例:

class UnboundMethod
  attr_accessor :doc
end

map = Array.instance_method(:map)

map.doc = '`map` maps a block over all elements'

map_again = Array.instance_method(:map)

map_again.doc
# => nil

map.doc
# => '`map` maps a block over all elements'

map.object_id == map_again.object_id
# => false

因此,您不能将文档存储在方法中,因为方法不是对象,并且不能将其存储在代理对象中,因为Ruby不保证这些代理对象的身份。

您需要将其存储在其他地方。 也许在Module中定义了方法,并由方法名称索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM