Bird
Raised Fist0
Rubyprogramming~15 mins

Module declaration syntax in Ruby - Mini Project: Build & Apply

Choose your learning style10 modes available
Module declaration syntax
📖 Scenario: You are organizing a small Ruby program that groups related methods inside a module. This helps keep your code neat and reusable.
🎯 Goal: Create a Ruby module named MathHelpers that contains a method to add two numbers.
📋 What You'll Learn
Create a module named MathHelpers
Inside the module, define a method called add that takes two parameters a and b
The add method should return the sum of a and b
Call the add method from the MathHelpers module with arguments 5 and 7
Print the result of the method call
💡 Why This Matters
🌍 Real World
Modules are used in Ruby to group related methods and constants, making code easier to maintain and reuse.
💼 Career
Understanding modules is important for Ruby developers to organize code and use libraries effectively.
Progress0 / 4 steps
1
Create the module declaration
Write a module declaration named MathHelpers.
Ruby
Hint

Use the module keyword followed by the module name and end to close it.

2
Define the add method inside the module
Inside the MathHelpers module, define a method called add that takes two parameters a and b.
Ruby
Hint

Use def self.add(a, b) to define a module method that can be called without creating an object.

3
Call the add method from the module
Call the add method from the MathHelpers module with arguments 5 and 7, and store the result in a variable called result.
Ruby
Hint

Use MathHelpers.add(5, 7) to call the method and assign it to result.

4
Print the result
Print the value of the variable result.
Ruby
Hint

Use puts result to display the sum.

Practice

(1/5)
1. What is the correct way to declare a module named MathTools in Ruby?
easy
A. def MathTools # code here end
B. module MathTools # code here end
C. class MathTools # code here end
D. package MathTools { # code here }

Solution

  1. Step 1: Recognize Ruby module syntax

    In Ruby, modules are declared using the keyword module followed by the module name and end.
  2. Step 2: Identify the correct declaration

    module MathTools # code here end uses module MathTools ... end, which is the correct syntax for a module.
  3. Final Answer:

    module MathTools # code here end -> Option B
  4. Quick Check:

    Ruby modules use module Name ... end [OK]
Hint: Modules start with 'module' and end with 'end' [OK]
Common Mistakes:
  • Using 'class' instead of 'module'
  • Using 'def' which is for methods
  • Using non-Ruby syntax like 'package'
2. Which of the following is a syntax error when declaring a module in Ruby?
easy
A. module Tools { def help end }
B. module Tools def self.help end end
C. module Tools end
D. module Tools CONSTANT = 10 end

Solution

  1. Step 1: Check Ruby module block delimiters

    Ruby modules use module ... end without braces { }.
  2. Step 2: Identify invalid syntax

    module Tools { def help end } uses braces { } which is invalid syntax for module declaration in Ruby.
  3. Final Answer:

    module Tools { def help end } -> Option A
  4. Quick Check:

    Ruby modules use 'module ... end', not braces [OK]
Hint: Ruby modules never use curly braces for blocks [OK]
Common Mistakes:
  • Using curly braces instead of 'end'
  • Missing 'end' keyword
  • Confusing module with class syntax
3. What will be the output of the following Ruby code?
module Greetings
  def self.say_hello
    "Hello!"
  end
end

puts Greetings.say_hello
medium
A. Hello!
B. Greetings.say_hello
C. NoMethodError
D. SyntaxError

Solution

  1. Step 1: Understand module method definition

    The method say_hello is defined as a module method using self., so it can be called on the module directly.
  2. Step 2: Evaluate the method call output

    Calling Greetings.say_hello returns the string "Hello!", which is printed by puts.
  3. Final Answer:

    Hello! -> Option A
  4. Quick Check:

    Module method call returns string output [OK]
Hint: Module methods use self. and can be called directly [OK]
Common Mistakes:
  • Trying to call method without self. prefix
  • Expecting instance method behavior
  • Confusing syntax errors with method calls
4. Identify the error in the following Ruby module declaration:
module Tools
  def help
    "Help message"
  end
end

Tools.help
medium
A. No error, code runs fine
B. Missing 'end' keyword for module
C. Method 'help' should be defined with 'self.' to call on module
D. Module name should be lowercase

Solution

  1. Step 1: Check method definition inside module

    The method help is defined as an instance method, but called on the module directly.
  2. Step 2: Understand method call context

    To call Tools.help, help must be a module method defined with self.help.
  3. Final Answer:

    Method 'help' should be defined with 'self.' to call on module -> Option C
  4. Quick Check:

    Module methods need 'self.' prefix to be called on module [OK]
Hint: Use 'def self.method' for module-level methods [OK]
Common Mistakes:
  • Defining instance methods but calling on module
  • Forgetting 'self.' prefix for module methods
  • Assuming lowercase module names are valid
5. Given the following nested module declarations, which is the correct way to define a module Inner inside module Outer in Ruby?
module Outer
  # Your code here
end
hard
A. module Outer class Inner end end
B. module Outer::Inner end
C. module Outer.Inner end
D. module Outer module Inner end end

Solution

  1. Step 1: Understand nested module syntax

    In Ruby, nested modules can be declared by placing one module inside another.
  2. Step 2: Identify correct nested declaration

    module Outer module Inner end end correctly nests module Inner inside module Outer using indentation and end keywords.
  3. Final Answer:

    module Outer module Inner end end -> Option D
  4. Quick Check:

    Nested modules use nested 'module ... end' blocks [OK]
Hint: Nest modules by placing one inside another with 'module' [OK]
Common Mistakes:
  • Using dot notation instead of :: for nested modules
  • Using class instead of module for nested module
  • Incorrect syntax like dot (.) in module names
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