我正在尝试编写一个带有rgb值的简单程序,并使用Shoes(Raisins修订版1134)将背景更改为该颜色。这是我的代码:
Shoes.app :title => "Show a Color" do
def convert_to_num(value)
# Splits string into numerical values
value.split(',').map { |num| num.to_i }
end
def to_rgb(value)
red, green, blue = convert_to_num(value)
rgb(red, green, blue)
end
stack :height => 500, :width => 500 do
value = edit_line
button "Change color!" do
background to_rgb(value)
end
end
end
当我运行它时,我收到此错误:私有方法'split'调用(Shoes :: EditLine):Shoes :: EditLine。为什么是这样?该方法适用于irb。
答案 0 :(得分:2)
您正在尝试拆分EditLine对象,而不是文本。您可以使用text
方法获取其文本,如下所示:
def convert_to_num(value)
# Splits string into numerical values
value.text.split(',').map { |num| num.to_i }
end
答案 1 :(得分:1)
我假设你希望value
是一个字符串。您传递给value
的{{1}}是to_rgb
,而不是字符串。我知道从查看错误消息,而不是阅读代码。你的Shoes::EditLine
方法很好,你只是没有传递你认为你的对象类型。
我之前没有使用过鞋子编程,所以我不确定如何解决这个问题,但现在你知道是什么导致了这个问题。