我有一个简短的脚本,它使用正则表达式搜索文件中用户输入的特定短语。基本上,它是一个简单的搜索框。红宝石鞋搜索框
我现在试图让这个搜索框有一个图形用户界面,这样用户可以输入一个框,并将他们的匹配“提醒”给他们。
我是使用红宝石鞋的新手,并且在TheShoeBox网站上使用过这些例子。
任何人都可以指出我的错在哪里我的代码?
这里是我的命令行版本的作品:
string = File.read('db.txt')
puts "Enter what you're looking for below"
begin
while(true)
break if string.empty?
print "Search> "; STDOUT.flush; phrase = gets.chop
break if phrase.empty?
names = string.split(/\n/)
matches = names.select { |name| name[/#{phrase}/i] }
puts "\n \n"
puts matches
puts "\n \n"
end
end
这是我试图在使用它红宝石鞋内:
Shoes.app :title => "Search v0.1", :width => 300, :height => 150 do
string = File.read('db.txt')
names = string.split(/\n/)
matches = names.select { |name| name[/#{phrase}/i] }
def search(text)
text.tr! "A-Za-z", "N-ZA-Mn-za-m"
end
@usage = <<USAGE
Search - This will search for the inputted text within the database
USAGE
stack :margin => 10 do
para @usage
@input = edit_box :width => 200
end
flow :margin => 10 do
button('Search') { @output.matches }
end
stack(:margin => 0) { @output = para }
end
非常感谢
所以,只要确保这些代码都可以。例如,'phrase'没有声明,但是你在这段代码中使用它。 – 2011-05-17 20:55:00