Bird
Raised Fist0
Rubyprogramming~10 mins

Module declaration syntax in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a module named MyModule.

Ruby
module [1]
  # module content
end
Drag options to blanks, or click blank then click option'
AMyModule
Bmy_module
CModule
Dmodule
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase names for modules.
Using reserved words like 'module' as the module name.
2fill in blank
medium

Complete the code to define a method inside the module.

Ruby
module Greetings
  def self.[1]
    puts 'Hello!'
  end
end
Drag options to blanks, or click blank then click option'
Agreet
BSayHello
Chello
Dsay_hello
Attempts:
3 left
💡 Hint
Common Mistakes
Using capital letters in method names.
Using method names that are not descriptive.
3fill in blank
hard

Fix the error in the module declaration syntax.

Ruby
module [1]
  def greet
    puts 'Hi!'
  end
end
Drag options to blanks, or click blank then click option'
AGreetModule
BgreetModule
Cgreet_module
Dgreetmodule
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or snake_case for module names.
Using method names as module names.
4fill in blank
hard

Fill both blanks to create a module with a constant and a method.

Ruby
module [1]
  VERSION = '1.0'
  def self.[2]
    puts "Version: #{VERSION}"
  end
end
Drag options to blanks, or click blank then click option'
AAppInfo
Bshow_version
Cdisplay_version
Dapp_info
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase for module names.
Using capital letters in method names.
5fill in blank
hard

Fill all three blanks to define a nested module with a method.

Ruby
module [1]
  module [2]
    def self.[3]
      puts 'Nested module method'
    end
  end
end
Drag options to blanks, or click blank then click option'
AOuterModule
BInnerModule
Cnested_method
Dinner_module
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or snake_case for module names.
Using capital letters in method names.

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