Modules

МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…

Они Ρ‡Π°Ρ‰Π΅ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² lib Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π² app)

# ./lib/my_module.rb
module MyModule
    def self.included(base)
        base.extend(ClassMethods)
    end
    
    module ClassMethods
        def another_custom
            # ...
        end
    end
    
    def custom(a)
        # do sth
    end
end

Π”Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ этот ΠΊΠΎΠ΄ Π² нашСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π³Π΄Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ:

class MyController < ApplicationController
    include MyModule
    
    def self.func(*args)
        another_custom do |controller, value|
            controller.custom(value)
        end
    end
end

Last updated