Bird
Raised Fist0
Rubyprogramming~5 mins

Include for instance methods in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the include keyword do in Ruby?
It adds the methods from a module as instance methods to a class, so objects of that class can use those methods.
Click to reveal answer
beginner
How do instance methods from a module become available in a Ruby class?
By using include ModuleName inside the class, the module's instance methods become instance methods of the class.
Click to reveal answer
beginner
Given this module:
module Greet
  def hello
    "Hi!"
  end
end

How do you make hello available to instances of class Person?
Inside the Person class, write include Greet. Then any Person object can call hello.
Click to reveal answer
intermediate
What is the difference between include and extend in Ruby?
<code>include</code> adds module methods as instance methods. <code>extend</code> adds them as class methods.
Click to reveal answer
beginner
Can a Ruby class include multiple modules for instance methods?
Yes, a class can include many modules. All their instance methods become available to the class's objects.
Click to reveal answer
What happens when you use include with a module in a Ruby class?
AThe module is copied as a subclass.
BThe module's methods become class methods of the class.
CNothing happens automatically.
DThe module's methods become instance methods of the class.
Which keyword adds module methods as class methods instead of instance methods?
Aextend
Binclude
Crequire
Dimport
If a module has a method greet, how do you call it on an object of a class that included the module?
Aobject.greet
BClassName.greet
CModuleName.greet
DYou cannot call it
Can a Ruby class include more than one module to get instance methods?
ANo, only one module can be included.
BYes, multiple modules can be included.
COnly if modules are nested.
DOnly if modules have different names.
What is the effect of including a module inside a Ruby class?
AIt creates a new subclass.
BIt copies the module's code into the class.
CIt adds the module's instance methods to the class.
DIt deletes existing methods in the class.
Explain how the include keyword works to add instance methods from a module to a Ruby class.
Think about how a class gets new methods from a module.
You got /4 concepts.
    Describe the difference between include and extend when using modules in Ruby.
    One affects objects, the other affects the class itself.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the include keyword do in Ruby when used inside a class?
      easy
      A. It deletes all methods from the class.
      B. It adds the module's methods as class methods to the class.
      C. It creates a new module inside the class.
      D. It adds the module's methods as instance methods to the class.

      Solution

      1. Step 1: Understand the role of include

        The include keyword is used to add methods from a module into a class.
      2. Step 2: Identify how methods are added

        When a module is included, its methods become instance methods of the class, meaning objects of the class can call them.
      3. Final Answer:

        It adds the module's methods as instance methods to the class. -> Option D
      4. Quick Check:

        Include = instance methods added [OK]
      Hint: Include adds module methods as instance methods [OK]
      Common Mistakes:
      • Confusing include with extend (which adds class methods)
      • Thinking include creates a new module
      • Assuming include removes existing methods
      2. Which of the following is the correct syntax to include a module named Greetings inside a class Person?
      easy
      A. class Person; include Greetings; end
      B. class Person; extend Greetings; end
      C. class Person; include(Greetings); end
      D. class Person; use Greetings; end

      Solution

      1. Step 1: Recall correct syntax for including modules

        In Ruby, to add instance methods from a module, use include ModuleName inside the class body without parentheses.
      2. Step 2: Check each option

        class Person; include Greetings; end uses include Greetings correctly. class Person; extend Greetings; end uses extend which adds class methods, not instance methods. class Person; include(Greetings); end uses parentheses which is not standard syntax. class Person; use Greetings; end uses use which is invalid in Ruby.
      3. Final Answer:

        class Person; include Greetings; end -> Option A
      4. Quick Check:

        Include syntax = include ModuleName [OK]
      Hint: Use 'include ModuleName' without parentheses [OK]
      Common Mistakes:
      • Using extend instead of include
      • Adding parentheses after include
      • Using invalid keywords like 'use'
      3. What will be the output of the following Ruby code?
      module Talk
        def speak
          "Hello!"
        end
      end
      
      class Dog
        include Talk
      end
      
      puts Dog.new.speak
      medium
      A. NoMethodError
      B. Hello!
      C. speak
      D. nil

      Solution

      1. Step 1: Understand module inclusion

        The module Talk defines an instance method speak. Including it in Dog adds speak as an instance method of Dog.
      2. Step 2: Trace the method call

        Creating a new Dog object and calling speak will execute the method from Talk, returning "Hello!".
      3. Final Answer:

        Hello! -> Option B
      4. Quick Check:

        Included method called = "Hello!" [OK]
      Hint: Included module methods become instance methods [OK]
      Common Mistakes:
      • Expecting NoMethodError because of missing method
      • Confusing instance and class methods
      • Thinking output is method name or nil
      4. Identify the error in the following Ruby code:
      module Walk
        def walk
          "Walking"
        end
      end
      
      class Person
        extend Walk
      end
      
      puts Person.new.walk
      medium
      A. NoMethodError because walk is not an instance method
      B. SyntaxError due to extend usage
      C. No error, outputs "Walking"
      D. TypeError because module cannot be extended

      Solution

      1. Step 1: Understand extend vs include

        Using extend Walk adds module methods as class methods, not instance methods.
      2. Step 2: Analyze method call

        Person.new.walk calls walk on an instance, but walk is only a class method here, so it raises NoMethodError.
      3. Final Answer:

        NoMethodError because walk is not an instance method -> Option A
      4. Quick Check:

        Extend adds class methods, instance call fails [OK]
      Hint: Extend adds class methods; instance calls fail [OK]
      Common Mistakes:
      • Confusing extend with include
      • Expecting no error on instance method call
      • Thinking extend causes syntax or type errors
      5. Given the module and classes below, what will puts Cat.new.sound output?
      module AnimalSounds
        def sound
          "Generic sound"
        end
      end
      
      class Dog
        include AnimalSounds
        def sound
          "Bark"
        end
      end
      
      class Cat
        include AnimalSounds
      end
      hard
      A. Bark
      B. NoMethodError
      C. Generic sound
      D. nil

      Solution

      1. Step 1: Check method definitions in classes

        Class Dog overrides sound method with "Bark". Class Cat does not override it.
      2. Step 2: Determine method lookup for Cat instance

        Since Cat includes AnimalSounds and does not override sound, calling sound on Cat.new uses the module's method returning "Generic sound".
      3. Final Answer:

        Generic sound -> Option C
      4. Quick Check:

        Included method used if no override [OK]
      Hint: Class method overrides module method if defined [OK]
      Common Mistakes:
      • Assuming Cat uses Dog's sound method
      • Expecting NoMethodError for missing method
      • Confusing instance and class methods
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard