Sha256: 3d48dd41ebe8aacef8f7d4309a33c739b06cfa7bc4f83f3fed2bd483d9117add

Contents?: true

Size: 670 Bytes

Versions: 20

Compression:

Stored size: 670 Bytes

Contents

require "active_support/concern"

module Rails
  class Railtie
    module Configurable
      extend ActiveSupport::Concern

      module ClassMethods
        delegate :config, to: :instance

        def inherited(base)
          raise "You cannot inherit from a #{superclass.name} child"
        end

        def instance
          @instance ||= new
        end

        def respond_to?(*args)
          super || instance.respond_to?(*args)
        end

        def configure(&block)
          class_eval(&block)
        end

        private

          def method_missing(*args, &block)
            instance.send(*args, &block)
          end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
railties-5.1.7 lib/rails/railtie/configurable.rb
railties-5.1.7.rc1 lib/rails/railtie/configurable.rb
railties-5.1.6.2 lib/rails/railtie/configurable.rb
railties-5.1.6.1 lib/rails/railtie/configurable.rb
railties-5.1.6 lib/rails/railtie/configurable.rb
railties-5.1.5 lib/rails/railtie/configurable.rb
railties-5.1.5.rc1 lib/rails/railtie/configurable.rb
railties-5.1.4 lib/rails/railtie/configurable.rb
railties-5.1.4.rc1 lib/rails/railtie/configurable.rb
railties-5.1.3 lib/rails/railtie/configurable.rb
railties-5.1.3.rc3 lib/rails/railtie/configurable.rb
railties-5.1.3.rc2 lib/rails/railtie/configurable.rb
railties-5.1.3.rc1 lib/rails/railtie/configurable.rb
railties-5.1.2 lib/rails/railtie/configurable.rb
railties-5.1.2.rc1 lib/rails/railtie/configurable.rb
railties-5.1.1 lib/rails/railtie/configurable.rb
railties-5.1.0 lib/rails/railtie/configurable.rb
railties-5.1.0.rc2 lib/rails/railtie/configurable.rb
railties-5.1.0.rc1 lib/rails/railtie/configurable.rb
railties-5.1.0.beta1 lib/rails/railtie/configurable.rb