Open1

【Ruby】module

seiya2130seiya2130

moduleは複数のクラスにログ出力など共通の機能を持たせる仕組み

log
module Log
    def log(text)
        puts "[LOG] #{text}" 
    end
end
user
require_relative 'log'

class User 
    include Log

    def initialize(name)
        log "initialize is called"
        @name = name
    end
    
    def hello
        log "hello is called"
        puts "Hello, #{@name}!"
    end
end

user = User.new("Alice")
user.hello

# [LOG] initialize is called
# [LOG] hello is called
# Hello, Alice!

検証

https://github.com/seiya2130/RubyLab/pull/2

参考

https://gihyo.jp/book/2020/978-4-297-11462-6