如何使用类和方法改进代码?

时间:2017-01-30 21:06:27

标签: ruby class oop object

我在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} "

1 个答案:

答案 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之类的标记以及您拥有的内容。