module FooModule
  def self.included base
    base.extend ClassMethods
  end

  module ClassMethods
    def bar
      puts "module"
    end
  end
end

module Klass
  include FooModule

  def self.bar
    puts 'class'
    super
  end
end

Klass.bar #=> class

原文: http://tech.tulentsev.com/2012/02/ruby-how-to-override-class-method-with-a-module/

posted on 2016-04-08 17:04  oslivan  阅读(470)  评论(0编辑  收藏  举报