I'm working through Zed Shaw's Learn Ruby The Hard Way and I'm having an issue including a module in IRB. In exercise 25, we define a new module Ex25, require it in IRB, and then can use its various methods through the namespace of that module, e.g. Ex25.break_words(sentence). In the Extra Credit, it's stated that typing include Ex25 will basically add the methods from the module into the current "space" (not sure what to call it) and you can then call them without explicitly referring to the module, e.g. break_words(sentence). When I do this, however, I'm getting an "undefined method" error. Any help / explanation would be greatly appreciated, thanks!
Ruby Include Module in IRB
3.3k Views Asked by orenyk At
1
There are 1 best solutions below
Related Questions in RUBY
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- Duplicate GET requests - Rails & Heroku
- convert csv file with json data inside to a column, rows table in 2nd csv file
- Installing dependencies from a gemspec file
- Verifying Google Identity OAuth2 token with Ruby
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- How to fix error in model with gem lockbox
- Cannot install Ruby Gem on Window
- use logstash filter ,aes gcm encrypted in ruby,but cannot decrypted in java
- In Rails 7, what is the right ActiveRecord callback to use if I need to prevent (or rollback) persistance on error?
- How can I go through an array and still remove elements from it
- Nokogiri only returning 5 results
- How do I get the fullscreen mode in firefox?
- undefined group option when using branch reset group regex in Ruby
Related Questions in IRB
- How to get the path of a file without normalisation in ruby?
- Stop Rails IRB and debugger sharing history
- ruby `pry`: can I edit classes defined on the REPL?
- Why Visual studio don't give me an output?
- Prevent Rails console from removing consecutive linebreaks
- IRB Keyboard Shortcuts are disabled? Can these be re-enabled? What did I break?
- How can remove multiline output with Rails console (Rails 6.1.7.2/Ruby 3.1.2)?
- Rails 7 IRB console inserts escape key instead of execute delete command
- What is the traceback/local jumpback error in irb repl when writing multiline code?
- Rails console overriding `~/.irbrc`
- Ruby on Rails undefined local variable or method in console
- adding search function to my rails API (with pg_search), model comming from external DB, getting Object doesnt support #inspect
- Ruby 3 IRB home end and ctrl-u not working
- No history for rails console
- How to copy object from one shell to another shell?
Related Questions in LEARN-RUBY-THE-HARD-WAY
- Cannot install Ruby 1.9.2 using rvm on MAC osx
- Nested Loop: to be dynamic?
- Stand alone method is calling another method by itself
- Not displaying it's corresponding values with it's key for Hash
- Ruby Exercise 18 undefined method although i defined the methods
- Ruby: Error changing variables with methods
- LoadError when requiring Sinatra Gem in app
- Ruby The Hard Way Exercise 13 ARGV not working in PowerShell
- "Learn ruby the hard way" missing puts output on exercise 14
- How to call arrays from classes/objects in Ruby (learn ruby the hard way exercise 42)
- Stuck on Learn Ruby The Hard Way #46 rake aborted
- Learn Ruby the hard way Ex 41. - what's with the multi-line string?
- Assigning .read Results to a Variable? (Learn Ruby The Hard Way Ex. 15/16)
- Undefined method 'close' for main:Object (NoMethodError) in Ruby
- gets.chomp inside a function in ruby
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
That's an error in the book. The methods in
Ex25are class methods.includeadds instance methods to the "current space." Removeselffrom the method definitions and it'll work:If you're curious, here's some more detail about what's going on: The place where the methods are included—the "current space"—is the Object class:
All Object instances gain the included methods ...
... and the top-level is just an Object instance:
But wait. If the top-level is an Object instance, why does it respond to
include? Isn'tincludean instance method ofModule(and its subclass,Class)? The answer is that the top-level has a singleton method ...... which we can assume forwards to the Object class.