【发布时间】:2015-01-29 12:49:05
【问题描述】:
我不明白为什么我不能从 color.rb 调用方法colorize。
我在课堂上写了include color,但是当我尝试执行脚本时,我在wget 中收到此错误:
undefined method `colorize' for #<String:0x00000001152d30>
这是代码:
$LOAD_PATH << './lib'
require 'color'
class Download
include color
def wget(arr)
FileUtils.cd('/mnt/list')
site = "xxxxx"
arr.each do |f|
wget = system("wget #{site}#{f}")
logger.info("wget: #{f}".colorize("blue"))
end
end
end
使用colorize方法的文件color.rb
module Color
def colorize(color, options = {})
background = options[:background] || options[:bg] || false
style = options[:style]
offsets = ["gray","red", "green", "yellow", "blue", "magenta", "cyan","white"]
styles = ["normal","bold","dark","italic","underline","xx","xx","underline","xx","strikethrough"]
start = background ? 40 : 30
color_code = start + (offsets.index(color) || 8)
style_code = styles.index(style) || 0
"\e[#{style_code};#{color_code}m#{self}\e[0m"
end
end
【问题讨论】:
-
您在 your 类中包含
Color,而不是String。
标签: ruby-on-rails ruby