Bird
Raised Fist0
Rubyprogramming~5 mins

Module methods in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a module method in Ruby?
A module method is a method defined inside a module that can be called on the module itself or included in classes. It helps group related methods without creating objects.
Click to reveal answer
beginner
How do you define a module method that can be called directly on the module?
You define it using def self.method_name inside the module. This makes the method callable on the module itself, like ModuleName.method_name.
Click to reveal answer
intermediate
What is the difference between def method_name and def self.method_name inside a module?
def method_name defines an instance method for classes that include the module.
def self.method_name defines a module method callable directly on the module.
Click to reveal answer
beginner
How can you call a module method after defining it with def self.method_name?
Call it by using the module name followed by the method name, like ModuleName.method_name.
Click to reveal answer
beginner
Can module methods be used without including the module in a class?
Yes, module methods defined with def self.method_name can be called directly on the module without including it in any class.
Click to reveal answer
How do you define a method inside a module that can be called directly on the module?
Adef method_name
Bdef @method_name
Cdef module.method_name
Ddef self.method_name
What happens if you define def method_name inside a module and include that module in a class?
AThe method becomes an instance method of the class
BThe method becomes a class method of the class
CThe method can only be called on the module
DThe method is private and cannot be called
Which of these calls a module method correctly?
AModuleName.method_name
BModuleName#method_name
Cmethod_name()
Dinclude ModuleName.method_name
Can you call a module method without including the module in a class?
ANo, you must include the module first.
BYes, if it is defined with self.
COnly if the module is a subclass.
DOnly if the method is public.
What keyword is used to define a module method inside a module?
Aclass
Bmodule
Cself
Ddefmodule
Explain how to define and call a module method in Ruby.
Think about how to make a method belong to the module itself.
You got /3 concepts.
    Describe the difference between instance methods and module methods inside a Ruby module.
    Focus on where and how each method is called.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the correct way to define a method inside a Ruby module so it can be called directly on the module?
      easy
      A. Define the method outside the module
      B. Define the method without self inside the module
      C. Define the method with self.method_name inside the module
      D. Define the method with def module.method_name inside the module

      Solution

      1. Step 1: Understand module method definition

        In Ruby, to make a method callable directly on a module, you define it with self.method_name inside the module.
      2. Step 2: Compare options

        Define the method with self.method_name inside the module uses self.method_name, which is correct. Other options either omit self or use invalid syntax.
      3. Final Answer:

        Define the method with self.method_name inside the module -> Option C
      4. Quick Check:

        Module methods use self.method_name = A [OK]
      Hint: Use self.method_name to define module methods [OK]
      Common Mistakes:
      • Forgetting to add self before method name
      • Defining methods outside the module
      • Using invalid syntax like def module.method_name
      2. Which of the following is the correct syntax to call a module method named greet defined in module Welcome?
      easy
      A. Welcome#greet
      B. greet.Welcome
      C. Welcome.new.greet
      D. Welcome.greet

      Solution

      1. Step 1: Recall how to call module methods

        Module methods are called using dot notation: ModuleName.method_name.
      2. Step 2: Check options

        Welcome.greet is the correct syntax using dot notation. Welcome#greet incorrectly uses #. greet.Welcome reverses the order. Welcome.new.greet confuses it with an instance method call.
      3. Final Answer:

        Welcome.greet -> Option D
      4. Quick Check:

        Call module methods with dot = D [OK]
      Hint: Call module methods with ModuleName.method_name [OK]
      Common Mistakes:
      • Using # instead of . to call module methods
      • Trying to call method with invalid syntax
      • Confusing instance and module method calls
      3. What will be the output of the following Ruby code?
      module MathTools
        def self.square(x)
          x * x
        end
      end
      
      puts MathTools.square(4)
      medium
      A. 16
      B. square
      C. Error: undefined method
      D. 4

      Solution

      1. Step 1: Understand the method definition

        The method square is defined as a module method using self.square. It returns the square of the input.
      2. Step 2: Calculate the output

        Calling MathTools.square(4) returns 4 * 4 = 16, which is printed.
      3. Final Answer:

        16 -> Option A
      4. Quick Check:

        4 squared = 16 [OK]
      Hint: Multiply input by itself in module method [OK]
      Common Mistakes:
      • Forgetting self and causing undefined method error
      • Confusing output with input
      • Expecting method name as output
      4. Identify the error in this Ruby module method code:
      module Greetings
        def greet
          "Hello!"
        end
      end
      
      puts Greetings.greet
      medium
      A. Method greet is not defined as a module method
      B. Module name is incorrect
      C. Missing parentheses in method call
      D. Syntax error in method body

      Solution

      1. Step 1: Check method definition inside module

        The method greet is defined without self., so it is an instance method, not a module method.
      2. Step 2: Understand method call

        Calling Greetings.greet tries to call a module method, but none exists, causing an error.
      3. Final Answer:

        Method greet is not defined as a module method -> Option A
      4. Quick Check:

        Missing self. means no module method [OK]
      Hint: Add self. to define module methods [OK]
      Common Mistakes:
      • Defining instance methods instead of module methods
      • Calling module method without defining it
      • Assuming parentheses are required in method call
      5. Given the module below, how can you add a module method double that returns twice the input number?
      module Calculator
        # Add your method here
      end
      hard
      A. def double(x) x + x end
      B. def self.double(x) x * 2 end
      C. def Calculator.double(x) x * 2 end
      D. def self.double x * 2 end

      Solution

      1. Step 1: Define a module method with self

        To create a module method, define it with self.method_name inside the module.
      2. Step 2: Write method to return twice the input

        The method should take one argument x and return x * 2.
      3. Final Answer:

        def self.double(x) x * 2 end -> Option B
      4. Quick Check:

        Module method with self and correct logic = A [OK]
      Hint: Use def self.method(args) for module methods [OK]
      Common Mistakes:
      • Omitting self and creating instance method
      • Missing method argument
      • Defining method outside module
      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