J'ai une petite application ruby que j'ai écrite qui est un chercheur d'anagrammes. C'est pour apprendre le rubis, mais je voudrais le mettre en ligne pour un usage personnel. J'ai un peu d'expérience avec Rails, et beaucoup ici ont recommandé Sinatra. Je vais bien avec l'un ou l'autre, mais je ne trouve aucune information sur la façon d'utiliser un fichier texte au lieu d'une base de données.Quel est le meilleur moyen de mettre en ligne une petite application ruby?
L'application est assez simple, valide contre un fichier texte d'une liste de mots, puis trouve tous les anagrammes. J'ai supposé que cela devrait être assez simple, mais je suis coincé sur l'importation de ce fichier texte dans Rails (ou Sinatra si je choisis de cette façon). Dans le projet Rails, j'ai placé le fichier texte dans le répertoire lib
.
Malheureusement, même si le chemin semble être correct dans Rails, je reçois une erreur:
no such file to load -- /Users/court/Sites/cvtest/lib/english.txt
(cvtest
est le nom du projet rails)
Voici le code. Cela fonctionne très bien par lui-même:
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