Sha256: 09b5f0338da231e0222932dab4292c32a9ca0f502c3c412004f45c5311718e1d

Contents?: true

Size: 541 Bytes

Versions: 2

Compression:

Stored size: 541 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.headers.merge!(headers)
    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

2 entries across 2 versions & 1 rubygems

Version Path
rack-app-3.0.0 lib/rack/app/singleton_methods/inheritance.rb
rack-app-3.0.0.delta lib/rack/app/singleton_methods/inheritance.rb