Sha256: 1a1e904cad77f9ae568151d3df1369365851f26cf006e2e16248326c285369fc
Contents?: true
Size: 735 Bytes
Versions: 7
Compression:
Stored size: 735 Bytes
Contents
# George Moschovitis <gm@navel.gr> class Module # A useful macro for dynamic modules. #-- # FIXME: quick and easy implementation, should # come up with something better. The name # sucks too. #++ def on_included(code) tag = caller[0].split(' ').first.split(/\/|\\/).last.gsub(/:|\.|\(|\)/, '_') old = "__included_#{tag}" module_eval %{ class << self alias_method :#{old}, :included def included(base) #{old}(base) #{code} end end } end end =begin Testing module M on_included %{ puts 'hello' } end module Q on_included %{ puts 'world' } on_included %{ puts 'it works' } end class C include M include Q end =end
Version data entries
7 entries across 7 versions & 2 rubygems