Search code examples
rubybotspry

Can't Load my Ruby File


OK SO I Am just picking Ruby up pretty much for the kicks and giggles... and Believe me when I say I'm stumped.

I want to create a bot for my Twitch stream and do it in Ruby because I found a fairly easy tut to follow along with, along with my reasoning skills. However I'm having a very hard time getting my command prompt or pry to load the file.

Here is my file 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

Now, From what I gathered, I should beable to go into my command prompt and type pry I get this. Pry

Now, I want to run my program which is located in a dropbox (Private use)

I'm Still very new to the concept of Repl's as I've been working with Java mostly along with very LITTLE Experience in other languages. What am I doing wrong here? Why can I not get my file to load properly? I've also tried filepathing and got this.FilePathing

I'm sorry if this is a stupid question. It's just driving me absolutely bat-brain crazy. The reason this is driving me bonkers is the video I was watching, he didn't do anything different other than my guess is he was using Terminal instead of Command Prompt. I Wanted originally to do this through Cygwin but upon install of Pry I lost a bunch of Cygwin files and can no longer load Cygwin, I will re-install the over all program later and see what I can from there.

Sorry for no embedded pics.

Also, any easier way to do this I'm all ears. I've tried Komodo Edit 10 but it's not playing nice ether.


Solution

  • Require from LOAD_PATH

    A Ruby module or class file needs to be in the LOAD_PATH to require it with Kernel#require. For example, if your file is named just_in_case.rb, you can use:

    $LOAD_PATH.unshift '/path/to/dropbox/directory'
    
    # Leave off the path and .rb extension.
    require 'just_in_case' 
    

    Load from an absolute path

    If you need to provide an absolute path, then you should use Kernel#load instead. For example:

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

    Caveats

    There are some other differences in behavior between require, require_relative, and load, but they probably don't really matter within the limited scope of the question you asked except that there have historically been issues with Kernel#require_relative within the REPL. It may or may not work as expected now, but I would still recommend require or load for your specific use case.