0
0
Rubyprogramming~5 mins

Custom modules as mixins in Ruby

Choose your learning style9 modes available
Introduction

Mixins let you share code between classes easily. Custom modules help you add useful features without repeating code.

You want to add the same behavior to many classes without repeating code.
You want to organize related methods in one place and use them in different classes.
You want to keep your classes simple and add extra features only when needed.
Syntax
Ruby
module ModuleName
  def method_name
    # code here
  end
end

class ClassName
  include ModuleName
end
Use module to create a module with methods.
Use include inside a class to add module methods as instance methods.
Examples
This example adds a greeting method to the Person class using the Greet module.
Ruby
module Greet
  def say_hello
    puts "Hello!"
  end
end

class Person
  include Greet
end

p = Person.new
p.say_hello
This example adds a square method to Calculator using the MathHelpers module.
Ruby
module MathHelpers
  def square(x)
    x * x
  end
end

class Calculator
  include MathHelpers
end

calc = Calculator.new
puts calc.square(4)
Sample Program

This program shows how the Logger module adds a log method to the User class. When we call create, it logs a message.

Ruby
module Logger
  def log(message)
    puts "LOG: #{message}"
  end
end

class User
  include Logger

  def create
    log("User created")
  end
end

user = User.new
user.create
OutputSuccess
Important Notes

Modules cannot be instantiated like classes; they are only for sharing code.

Using include adds module methods as instance methods.

You can also use extend to add module methods as class methods.

Summary

Custom modules let you share methods across classes without repeating code.

Use include to add module methods as instance methods.

Mixins help keep your code organized and reusable.