无法加载我的Ruby文件

时间:2017-04-30 02:00:26

标签: ruby bots pry

好的所以我只是因为踢腿和咯咯笑而选择了Ruby ...并且当我说我难倒的时候请相信我。

我想为我的Twitch流创建一个机器人并在Ruby中执行它,因为我发现了一个相当容易跟随的推特,以及我的推理技巧。但是,我很难获得命令提示符或撬开加载文件。

这是我的文件JUST IN CASE

require 'socket'

TWITCH_HOST = "irc.twitch.tv"
TWITCH_PORT = 6667

class Fox

def initialize
    @nickname = "mybotsname"
    @password = "I have the proper oauth here"
    @channel = "mytwitchchannel"
    @socket = TCPSocket.open(TWITCH_HOST, TWITCH_PORT)

    write_to_system "PASS #{@password}"
    write_to_system "NICK #{@nickname}"
    write_to_system "USER #{@nickname} 0 * #{@nickname}"
    write_to_system "JOIN ##{@Channel}"
end

def write_to_system(message)
    @socket.puts message
end

def write_to_chat(message)
    write_to_system "PRIVMSG ##{@channel} :{message}"
end

end

现在,从我收集到的内容中,我应该可以进入我的命令提示符并键入pry 我明白了 Pry

现在,我想运行位于dropbox中的程序(私人使用)

我仍然对Repl的概念很陌生,因为我一直在使用Java,而且其他语言的经验非常少。我在这做错了什么?为什么我无法正确加载文件?我也尝试过文件路径并得到了这个。FilePathing

对不起,如果这是一个愚蠢的问题。它只是让我蝙蝠脑疯狂。这让我疯狂的原因是我正在观看的视频,除了我的猜测他没有使用终端而不是命令提示符时,他没有做任何不同的事情。我原本想要通过Cygwin做到这一点但是在安装Pry后我丢失了一堆Cygwin文件并且无法再加载Cygwin,我将在以后重新安装所有程序,看看我能从那里得到什么。

很抱歉没有嵌入式图片。

此外,任何更简单的方法,我都是耳朵。我已经尝试过Komodo Edit 10,但它没有打出漂亮的以太。

1 个答案:

答案 0 :(得分:2)

需要LOAD_PATH

Ruby模块或类文件需要在LOAD_PATH中requireKernel#require。例如,如果您的文件名为 just_in_case.rb ,则可以使用:

$LOAD_PATH.unshift '/path/to/dropbox/directory'

# Leave off the path and .rb extension.
require 'just_in_case' 

从绝对路径加载

如果您需要提供绝对路径,则应使用Kernel#load代替。例如:

# Use the absolute path and the .rb extension.
load '/path/to/dropbox/just_in_case.rb'

注意事项

requirerequire_relativeload之间的行为存在其他一些差异,但在您提出的问题的有限范围内它们可能并不重要,除非那里历史上一直是REPL中Kernel#require_relative的问题。它现在可能会或可能不会按预期工作,但我仍然建议您针对特定用例使用或加载。