Sha256: 8a6ddb3643a38c3f741e607a3f9a6dc4f9f7062c91a9c90061480e5b96c8216d

Contents?: true

Size: 685 Bytes

Versions: 37

Compression:

Stored size: 685 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|
        next if const_name == :Tms
        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

37 entries across 37 versions & 1 rubygems

Version Path
aws-sdk-core-2.11.632 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.631 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.630 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.629 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.628 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.627 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.626 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.625 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.624 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.623 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.622 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.621 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.620 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.619 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.618 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.617 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.616 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.615 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.614 lib/aws-sdk-core/eager_loader.rb
aws-sdk-core-2.11.613 lib/aws-sdk-core/eager_loader.rb