我目前正在编写或多或少复杂的rails generator。除了缺乏文档之外,它非常简单。我看到内部方法(来自Thor
,AFAIU),如create_file
,其他人将其输出着色:
另一方面,在我的快速漫游开源生成器(例如rails
- 默认,pundit
,devise
期间,我找不到任何处理此着色的代码外观。我希望导出这个功能,就像say WARN, 'You are doing it wrong'
一样。
另一个小问题:是否确实需要手动处理所有错误,打印出消息并正常退出而不是提出某种类型的rails-generator标准异常?!
我非常感谢您对我遗失的任何建议。
答案 0 :(得分:0)
嗯,虽然有一个沉默,我设法自己实现了颜色记录。如果将来有任何陌生人需要相同的功能,我就把它放在这里。
SYMBOLS = {
scs: ['107', '✔'],
nfo: ['68', '✓'],
wrn: ['226', '✗'],
err: ['196', '✘']
}
def log msg
sym = SYMBOLS[caller(0)[1][/`(\w+)'/, 1].to_sym]
puts "\e[01;38;05;#{sym.first}m#{sym.last} #{generator.name}\e[0m: #{msg}"
end
def err msg
log "#{msg}\nAborting...\n\n"
exit 1
end
def nfo msg ; log msg ; end
def scs msg ; log msg ; end
def wrn msg ; log msg ; end
private_method :log