Sha256: 022995b7b1cebe5c632a00b18dce4673307ae83d896301c47df9b6c48c3b9762

Contents?: true

Size: 650 Bytes

Versions: 1122

Compression:

Stored size: 650 Bytes

Contents

require 'set'

module Aws
  # @api private
  class EagerLoader

    def initialize
      @loaded = Set.new
    end

    # @return [Set<Module>]
    attr_reader :loaded

    # @param [Module] klass_or_module
    # @return [self]
    def load(klass_or_module)
      @loaded << klass_or_module
      klass_or_module.constants.each do |const_name|
        path = klass_or_module.autoload?(const_name)
        begin
          require(path) if path
          const = klass_or_module.const_get(const_name)
          self.load(const) if Module === const && !@loaded.include?(const)
        rescue LoadError
        end
      end
      self
    end
  end
end

Version data entries

1,122 entries across 1,122 versions & 2 rubygems

Version Path
aws-sdk-core-2.11.595 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.594 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.593 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.592 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.591 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.590 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.589 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.588 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.587 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.586 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.585 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.584 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.583 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.582 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.581 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.580 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.579 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.578 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.577 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.576 lib/aws-sdk-core/eager_loader.rb