我的gem无法看到字典文本文件,我无法获取路径

时间:2016-03-05 18:42:59

标签: ruby file dictionary

我写了一个刽子手游戏的实现。 (它在终端上播放)。游戏工作正常,但我通常会遇到一些问题,让我的程序打开一个字典txt文件,从那里生成单词。下面是我生成单词

的代码
def word_generator(min, max)
    words = File.open("../dictionary.txt"), "r").readlines.map!(&:chomp)
    level_words = words.select { |i| i.length >= min && i.length <= max }
    random_index = rand(level_words.length)
    @game_word = level_words[random_index]
end

当我在本地玩游戏时,这种方法工作正常,而字典文本文件只是远离我的ruby文件的一个目录级别。这是问题所在: 当我将项目打包为gem时,安装它。它会抛出此错误in initialize': No such file or directory @ rb_sysopen /Users/andeladev/Desktop/paitin_hangman/bin/dictionary.txt (Errno::ENOENT)。当我将文本文件放在终端的当前工作目录中时,它才会正常运行。

如何在传递给File.open的参数中编写路径,该路径将告诉程序在gem路径而不是当前工作目录中查找文件。

1 个答案:

答案 0 :(得分:0)

试试这个:

file_name = File.join(File.dirname(File.expand_path(__FILE__)), '../dictionary.txt')
words = File.open(file_name, "r").readlines.map!(&:chomp)