Leave a comment

Simple Metaprogram to Dynamically inject Class Methods and Instance Methods from module

module DummyModule

module ClassMethods
def find_by_ranks()
puts “Class Method Executed Successfully !!!”
end
end

module InstanceMethods
def ranks()
puts “instance method Executed Successfully !!!”
end
end

def self.included(base)
base.send :include, InstanceMethods
base.send :extend, ClassMethods
end

end

class Test
include DummyModule
end

t = Test.new
t.ranks #output : instance method Executed Successfully !!!
Test.find_by_ranks #output : Class Method Executed Successfully !!!

Leave a comment