【问题标题】:Can't Load my Ruby File无法加载我的 Ruby 文件
【发布时间】:2017-04-30 02:00:26
【问题描述】:

好吧,所以我只是想把 Ruby 捡起来,只是为了好玩和咯咯笑……当我说我被难住时,请相信我。

我想为我的 Twitch 流创建一个机器人并用 Ruby 完成,因为我发现了一个相当容易遵循的 tut 以及我的推理能力。但是,我很难让我的命令提示符或撬来加载文件。

这是我的文件,以防万一

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,但它的以太不好。

【问题讨论】:

  • 您的问题不清楚。你究竟是如何加载文件的?当你这样做时会发生什么?您收到错误消息吗?如果是,您收到的确切错误消息是什么?观察到的行为是否与您期望的行为不同?如果是,您期望的行为是什么,您观察到的行为是什么,两者在哪些方面精确不同?请张贴minimal reproducible example,或者使用tour,并阅读How to Ask

标签: ruby bots pry


【解决方案1】:

需要来自 LOAD_PATH

Ruby 模块或类文件需要位于 requireKernel#require 的 LOAD_PATH 中。例如,如果您的文件名为 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 中的 987654323@。它现在可能按预期工作,也可能不按预期工作,但我仍然建议您针对您的特定用例使用 require 或 load。

【讨论】:

  • 无法完全使用 LOAD_PATH ,但我确实获得了 Absolute path to work,这对我来说已经足够了!!我之前尝试过并且遇到了类似的错误,也许我的输入中有错字!谢谢你澄清:)
猜你喜欢
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 2015-01-22
  • 2012-10-25
  • 2012-02-27
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多