2012-01-09 8 views
4

私は特にOS X Terminal.appをコマンドライン用に使用していますが、この質問は他のコマンドラインツールにも当てはまります。 Terminal.appからルビコードのブロックを実行するにはどうすればよいですか?

は、私は、コマンドラインからルビーのコードブロックを実行したいと言う:

Cats.each do |cat| 
    cat.name = 'Mommy' 

    cat.kittens each do |kitten| 
    kitten.color = "Brown" 
    end 
end 

を今、私はそれだけで分割取得し、実行していないことをコピー/ペーストした場合。

答えて

1

Terminal.app自体がRubyインタプリタではありません。あなたは、対話型のRubyコンソールを取得するためにirbを起動することをお勧めします:

[email protected] # irb 

irb(main):001:0> Cats.each do |cat| 
irb(main):002:1* cat.name = 'Mommy' 
irb(main):003:1> 
irb(main):004:1* cat.kittens each do |kitten| 
irb(main):005:2*  kitten.color = "Brown" 
irb(main):006:2> end 
irb(main):007:1> end 

NameError: uninitialized constant Cats 
    from (irb):1 
    from :0 

あなたが特定のスクリプトのコンテキストでirbを実行するために使用することができますother tricksがあります。

20
ruby -e "Cats.each do |cat| 
    cat.name = 'Mommy' 

    cat.kittens each do |kitten| 
    kitten.color = 'Brown' 
    end 
end" 
1

まあ最初のあなたは、端末が、コードのブロックが何であるかまたはそれをどのように解釈するかを任意のアイデアを持っていないとして、IRBを実行します(またはruby -eを使用してインタプリタにコードを渡す)する必要があります。

その後、あなたが言うようにそれを貼り付けることで実行できるはずです。

関連する問題