我在原始代碼上做了一個很好的黑客攻擊和斜槓,但我沒有看到任何方式來壓縮這個較小的文件,而無需將檢查插入到模塊中的另一個文件中。正則表達式文本對於每個不同的時/ X /,所以他們不能結合任何進一步的,我能想到的任何方式來重構這個代碼更小?
case state
when /OH|PA|MN/
if @browser.text.include?("My text")
raise "x" unless /foo/.match(@browser.text)
raise "y" unless /foo2/.match(@browser.text)
raise "z" unless /foo3/.match(@browser.text)
else
raise "x1" unless /foofoo/.match(@browser.text)
raise "y1" unless /foofoo2/.match(@browser.text)
raise "z1" unless /foofoo3/.match(@browser.text)
end
when /IL|VA/
if @browser.text.include?("My text")
raise "x" unless /foo/.match(@browser.text)
raise "y" unless /foo2/.match(@browser.text)
raise "z" unless /foo3/.match(@browser.text)
else
raise "x1" unless /foofoo/.match(@browser.text)
raise "y1" unless /foofoo2/.match(@browser.text)
raise "z1" unless /foofoo3/.match(@browser.text)
end
when /WI|SC|TN|IN|IA/
if @browser.text.include?("My text")
raise "x" unless /foo/.match(@browser.text)
raise "y" unless /foo2/.match(@browser.text)
raise "z" unless /foo3/.match(@browser.text)
else
raise "x1" unless /foofoo/.match(@browser.text)
raise "y1" unless /foofoo2/.match(@browser.text)
raise "z1" unless /foofoo3/.match(@browser.text)
end
when /SC/
if @browser.text.include?("My text")
raise "x" unless /foo/.match(@browser.text)
raise "y" unless /foo2/.match(@browser.text)
raise "z" unless /foo3/.match(@browser.text)
else
raise "x1" unless /foofoo/.match(@browser.text)
raise "y1" unless /foofoo2/.match(@browser.text)
raise "z1" unless /foofoo3/.match(@browser.text)
end
when /GA/
if @browser.text.include?("My text")
raise "x" unless /foo/.match(@browser.text)
raise "y" unless /foo2/.match(@browser.text)
raise "z" unless /foo3/.match(@browser.text)
else
raise "x1" unless /foofoo/.match(@browser.text)
raise "y1" unless /foofoo2/.match(@browser.text)
raise "z1" unless /foofoo3/.match(@browser.text)
end
else
raise "Not a valid state"
end
這一切都認真選擇什麼錯誤返回??? –
您可能想在Code Review Stack Exchange上發佈這類問題。但是,如果你得到4分贊成,你可能會做一些其他的錯誤。 –
我認爲Code Review的人會把它扔回給我們。 :-) –