irb(main):001:0> module M irb(main):002:1> def self.included(m) irb(main):003:2> m.module_eval do irb(main):004:3* def self.foo; p :foo; end irb(main):005:3> end irb(main):006:2> end irb(main):007:1> irb(main):008:1* def bar; p :bar; end irb(main):009:1> end => nil irb(main):010:0> class C irb(main):011:1> include M irb(main):012:1> end => C irb(main):013:0> C.foo :foo => nil irb(main):014:0> C.bar NoMethodError: undefined method `bar' for C:Class from (irb):14 from :0 irb(main):015:0> C.new.bar :bar => nil irb(main):016:0> class C irb(main):017:1> foo irb(main):018:1> end :foo => nil