1

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

実行すると、次のエラーが表示されます: (Shoes::EditLine):Shoes::EditLine に対して呼び出されたプライベート メソッド 'split'。どうしてこれなの?メソッドはirbで機能します。

4

2 に答える 2

1

私はあなたがvalue文字列であることを期待していると思います。value渡す先to_rgbは、であり、文字列ではShoes::EditLineありません。コードを読むことからではなく、エラーメッセージを見ることから私は知っています。あなたのconvert_to_numメソッドは問題ありません。あなたが思っているタイプのオブジェクトをメソッドに渡していないだけです。

私はこれまでShoesでプログラミングしたことがないので、問題を解決する方法がわかりませんが、少なくとも原因はわかっています。

于 2009-08-28T07:30:03.190 に答える