以下方法存在于Redcloth gem中。
我的问题是:构造“to(RedCloth :: Formatters :: HTML)”是什么意思? “to”不是类中的方法,也不是超类中的方法(它是String类)。
干杯。基督教。
def to_html( *rules )
apply_rules(rules)
to(RedCloth::Formatters::HTML)
end
答案 0 :(得分:7)
当您搜索整个RedCloth来源def to
时,除了找到一些以to
开头的方法外,您还会在to
中找到确切的方法ext/redcloth_scan/redcloth_scan.rb.rl
}。
这里发生了两件事。首先,此文件由Ragel预处理。但对于这个问题,你可以放心地忽略这个事实并阅读该文件中的奇怪语法。专注于Ruby位。
其次,课程RedCloth::TextileDoc
重新开启。这意味着此文件和lib/redcloth/textile_doc.rb
中的类是相同的。因此,to
实例方法可用于您引用的代码段。
答案 1 :(得分:0)
是的,它在http://github.com/jgarber/redcloth/blob/master/ext/redcloth_scan/redcloth_scan.c.rl第200行定义,并附在221的班级。
to(RedCloth::Formatters::HTML)
只是调用#to方法并传入格式化程序的类(redcloth_to C方法中的第二个参数;第一个必须始终为self
)。
答案 2 :(得分:-1)
可以在Object或内核模块中定义。
编辑:不是。它在此文件的第220行http://github.com/jgarber/redcloth/blob/master/ext/redcloth_scan/redcloth_scan.c.rl 上定义