Rails生成器:: colorize输出和引发异常

时间:2015-04-10 07:28:13

标签: ruby-on-rails-3 generator

我目前正在编写或多或少复杂的rails generator。除了缺乏文档之外,它非常简单。我看到内部方法(来自Thor,AFAIU),如create_file,其他人将其输出着色:

create: app/policies/application_policy.rb

另一方面,在我的快速漫游开源生成器(例如rails - 默认,punditdevise期间,我找不到任何处理此着色的代码外观。我希望导出这个功能,就像say WARN, 'You are doing it wrong'一样。

另一个小问题:是否确实需要手动处理所有错误,打印出消息并正常退出而不是提出某种类型的rails-generator标准异常?!

我非常感谢您对我遗失的任何建议。

1 个答案:

答案 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