Sha256: e3b740c4db059716d4beccbdfa5c617c8e02c85f2b1e8705f94386b011367d58

Contents?: true

Size: 507 Bytes

Versions: 18

Compression:

Stored size: 507 Bytes

Contents

module Rack::App::SingletonMethods::Inheritance

  def on_inheritance(&block)
    @on_inheritance ||= []
    @on_inheritance << block unless block.nil?
    @on_inheritance
  end

  protected

  def inherited(child)

    child.serializer(&serializer.logic)
    child.middlewares.push(*middlewares)

    on_inheritance.each do |block|
      block.call(self, child)
      child.on_inheritance(&block)
    end

    error.handlers.each do |ex_class, block|
      child.error(ex_class, &block)
    end

  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rack-app-5.3.2 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.3.1 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.3.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.2.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.1.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.0.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.0.0.rc2 lib/rack/app/singleton_methods/inheritance.rb
rack-app-5.0.0.rc1 lib/rack/app/singleton_methods/inheritance.rb
rack-app-4.0.1 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.6.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.5.2 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.5.1 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.5.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.4.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.3.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.2.1 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.2.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.1.0 lib/rack/app/singleton_methods/inheritance.rb