我在Ruby中使用此代码,通过任何网页搜索单词。
我想知道是否可以使用类/方法改进它,使用面向对象使其更美观和更实用。有人可以帮帮我吗?
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} "
答案 0 :(得分:2)
您可以采取一些措施来改善这一点。第一种是将功能封装在描述性类中:
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
之类的标记以及您拥有的内容。