无法加载我的 Ruby 文件
Can't Load my Ruby File
好的,所以我只是选择 Ruby 来享受踢球和咯咯的笑声……相信我,当我说我被难住了时。
我想为我的 Twitch 流创建一个机器人并在 Ruby 中进行,因为我发现了一个相当容易跟上的教程,以及我的推理能力。但是,我很难获得命令提示符或撬来加载文件。
这是我的文件以防万一
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
现在,我想 运行 我的程序位于保管箱(私人使用)
我对 Repl 的概念还是很陌生,因为我一直在使用 Java,但对其他语言的经验却很少。我在这里做错了什么?为什么我不能正确加载我的文件?我也试过文件路径并得到了这个。FilePathing
如果这是一个愚蠢的问题,我很抱歉。这简直让我疯狂。这让我发疯的原因是我正在观看的视频,除了我猜测他使用的是终端而不是命令提示符之外,他没有做任何不同的事情。我最初想通过 Cygwin 执行此操作,但在安装 Pry 后我丢失了一堆 Cygwin 文件并且无法再加载 Cygwin,我稍后将重新安装所有程序并从那里看看我能做什么。
抱歉没有嵌入图片。
此外,任何更简单的方法我都洗耳恭听。我已经尝试过 Komodo Edit 10,但它的表现并不好。
需要 LOAD_PATH
一个Ruby模块或class文件需要在LOAD_PATH到require
它与Kernel#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'
注意事项
require
、require_relative
和 load
之间还有其他一些行为差异,但在您提出的问题的有限范围内,它们可能并不重要,除非REPL 中的 Kernel#require_relative 历来存在问题。它现在可能会或可能不会按预期工作,但我仍然建议为您的特定用例使用 require 或 load。
好的,所以我只是选择 Ruby 来享受踢球和咯咯的笑声……相信我,当我说我被难住了时。
我想为我的 Twitch 流创建一个机器人并在 Ruby 中进行,因为我发现了一个相当容易跟上的教程,以及我的推理能力。但是,我很难获得命令提示符或撬来加载文件。
这是我的文件以防万一
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
现在,我想 运行 我的程序位于保管箱(私人使用)
我对 Repl 的概念还是很陌生,因为我一直在使用 Java,但对其他语言的经验却很少。我在这里做错了什么?为什么我不能正确加载我的文件?我也试过文件路径并得到了这个。FilePathing
如果这是一个愚蠢的问题,我很抱歉。这简直让我疯狂。这让我发疯的原因是我正在观看的视频,除了我猜测他使用的是终端而不是命令提示符之外,他没有做任何不同的事情。我最初想通过 Cygwin 执行此操作,但在安装 Pry 后我丢失了一堆 Cygwin 文件并且无法再加载 Cygwin,我稍后将重新安装所有程序并从那里看看我能做什么。
抱歉没有嵌入图片。
此外,任何更简单的方法我都洗耳恭听。我已经尝试过 Komodo Edit 10,但它的表现并不好。
需要 LOAD_PATH
一个Ruby模块或class文件需要在LOAD_PATH到require
它与Kernel#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'
注意事项
require
、require_relative
和 load
之间还有其他一些行为差异,但在您提出的问题的有限范围内,它们可能并不重要,除非REPL 中的 Kernel#require_relative 历来存在问题。它现在可能会或可能不会按预期工作,但我仍然建议为您的特定用例使用 require 或 load。