私が書いた小さなルビーアプリケーションは、アナグラムサーチャーです。それはルビーを学ぶためのものですが、私は個人的な使用のためにオンラインにしたいと思います。私はRailsに関するいくつかの経験があり、多くの人がSinatraを推薦しています。私もどちらでも問題はありませんが、データベースの代わりにテキストファイルを使用する方法に関する情報は見つかりません。小さなルビーアプリをオンラインにするにはどうすればいいですか?
アプリケーションは非常に簡単で、単語リストのテキストファイルに対して検証し、すべてのアナグラムを見つけます。私はこれが非常にシンプルであるべきだと仮定していましたが、私はそのテキストファイルをRails(あるいはその方法を選んだ場合はSinatra)にインポートすることに専念しています。 Railsプロジェクトでは、テキストファイルをlib
ディレクトリに配置しました。
no such file to load -- /Users/court/Sites/cvtest/lib/english.txt
(cvtest
がレールのプロジェクトの名前です)
ここではコードです:
は残念ながら、パスがRailsの中に正しいように見えるにもかかわらず、私はエラーを取得します。それ自身で素晴らしい作品です:file_path = '/Users/court/Sites/anagram/dictionary/english.txt'
input_string = gets.chomp
# validate input to list
if File.foreach(file_path) {|x| break x if x.chomp == input_string}
#break down the word
word = input_string.split(//).sort
# match word
anagrams = IO.readlines(file_path).partition{
|line| line.strip!
(line.size == word.size && line.split(//).sort == word)
}[0]
#list all words except the original
anagrams.each{ |matched_word| puts matched_word unless matched_word == input_string }
#display error if
else
puts "This word cannot be found in the dictionary"
end