2017-01-30 10 views
0

Rubyでこのコードを使用して、どのWebページからでも単語を検索できます。クラスとメソッドでコードを改善するにはどうすればよいですか?

クラス/メソッドで改善できるかどうかは、オブジェクト指向を使用してより美しく機能的にすることができますか?誰でも助けてくれますか?

require 'open-uri' 

puts "Type URL you wanna search:" 
url = gets.chomp 
puts "Type the word you want to search:" 
pattern = gets.chomp 

page = open(url.to_s).read 
tags = page.scan(pattern) 

puts "It has #{tags.length} matches for: #{pattern} " 
+1

コードが正しく実行されている場合は、質問を[codereview.se]に移動することを検討してください。 –

答えて

2

これを改善するためにできることはいくつかあります。 1つは、説明的なクラスの中で機能をカプセル化することです。

class PageParser 
    def initialize(url) 
    @url = url 
    end 

    def scan(word) 
    open(@url).read.scan(word) 
    end 
end 

さらにコマンドラインフレンドリーなインターフェイスに向けることを強くお勧めします。

url, word = ARGV 

puts PageParser.new(url).scan(word).join(', ') 

あなたはそれをより強固にするためにOptionParserとその上に構築することができ、--verboseと何のようなフラグを追加する:これは、あなたは通常、上向きの矢印、最後のコマンドの上に実行することができ、些細必要な一切の入力を繰り返しテストを実行しない可能あなたはいますか?

+0

私はあなたのコードにURLと単語を入力する場所を得られませんでした。 (newbie here srry) – MoscrowDev

+0

このように: 'ruby myscript.rb http://example.com tag'コマンドライン。自動的にスクリプトを実行することができれば、さらに簡単です: 'myscript http://example.com/ tag' – tadman

+0

これは素晴らしいことです!ありがとう、たくさんの男! – MoscrowDev

関連する問題