下面的方法存在于Redcloth宝石中。这种结构在Ruby中意味着什么?
我的问题是:“(RedCloth :: Formatters :: HTML)”的结构是什么意思? “to”不是类中的方法,也不是超类(这是String类)。
干杯。基督教。
def to_html(*rules)
apply_rules(rules)
to(RedCloth::Formatters::HTML)
end
下面的方法存在于Redcloth宝石中。这种结构在Ruby中意味着什么?
我的问题是:“(RedCloth :: Formatters :: HTML)”的结构是什么意思? “to”不是类中的方法,也不是超类(这是String类)。
干杯。基督教。
def to_html(*rules)
apply_rules(rules)
to(RedCloth::Formatters::HTML)
end
当你搜索整个RedCloth源def to
,除了寻找一对夫妇与to
启动方法,你还可以找到确切的方法to
在ext/redcloth_scan/redcloth_scan.rb.rl
定义。
这里发生了两件事。首先,这个文件是由Ragel预处理的。但是对于这个问题,你可以放心地忽略这个事实,并阅读该文件中奇怪的语法。专注于红宝石位。
二,类RedCloth::TextileDoc
是重新打开在这里。这意味着该文件中的类和lib/redcloth/textile_doc.rb
是相同的。因此,to
实例方法将可用于您引用的一段代码。
可能是在对象或内核模块中定义的。
编辑:它不是。这是对这个文件的行220 http://github.com/jgarber/redcloth/blob/master/ext/redcloth_scan/redcloth_scan.c.rl
是的,它在http://github.com/jgarber/redcloth/blob/master/ext/redcloth_scan/redcloth_scan.c.rl定义的线200和连接到类在221
to(RedCloth::Formatters::HTML)
只是调用q若要方法和在类格式化的传递(第二个参数在redcloth_toÇ方法;第一个必须始终是self
)。