Class: Sorbet::Private::GemLoader
- Inherits:
-
Object
- Object
- Sorbet::Private::GemLoader
- Defined in:
- lib/gem_loader.rb
Overview
typed: ignore
Constant Summary collapse
- NO_GEM =
"_unknown"
- GEM_LOADER =
A map defining the code to load a gem. By default any gem mentioned by Gemfile is loaded by its name, here are either overrides or things that Bundler misses.
{ 'Ascii85' => proc do my_require 'ascii85' end, 'aws-sdk-v1' => proc do my_require 'aws-sdk-v1' AWS.eager_autoload! [ AWS::DynamoDB::Errors::InternalServerError, AWS::DynamoDB::Errors::ProvisionedThroughputExceededException, AWS::DynamoDB::Errors::ResourceInUseException, AWS::DynamoDB::Errors::ResourceNotFoundException, AWS::EC2::Errors::RequestLimitExceeded, AWS::S3::Errors::AccessDenied, AWS::S3::Errors::NoSuchBucket, AWS::S3::Errors::NotFound, ] end, 'aws-sdk-core' => proc do my_require 'aws-sdk' [ Aws::AssumeRoleCredentials, Aws::Athena, Aws::AutoScaling::Client, Aws::AutoScaling::Errors::AlreadyExists, Aws::AutoScaling::Errors::Throttling, Aws::AutoScaling::Errors::ValidationError, Aws::CloudFormation::Client, Aws::CloudFormation::Errors::ValidationError, Aws::CloudWatchLogs::Client, Aws::Credentials, Aws::DynamoDB::Client, Aws::DynamoDB::Errors::ProvisionedThroughputExceededException, Aws::EC2::Errors::RequestLimitExceeded, Aws::ElasticLoadBalancing::Client, Aws::Errors::ServiceError, Aws::IAM::Client, Aws::IAM::Errors::NoSuchEntity, Aws::IAM::Resource, Aws::InstanceProfileCredentials, Aws::Lambda::Client, Aws::Query::ParamList, Aws::S3::Bucket, Aws::S3::Client, Aws::S3::Encryption::Client, Aws::S3::Errors::InvalidRange, Aws::S3::Errors::NoSuchKey, Aws::S3::Errors::NotFound, Aws::S3::Object, Aws::S3::Resource, Aws::SES::Client, Aws::SES::Errors, Aws::SES::Errors::AccessDenied, Aws::SES::Errors::MessageRejected, Aws::SES::Errors::ServiceError, Aws::SES::Types, Aws::SES::Types::SendEmailResponse, Aws::SNS::Client, Aws::SNS::MessageVerifier, Aws::SQS::QueuePoller, Aws::STS::Client, Aws::STS::Errors::AccessDenied, Seahorse::Client::NetworkingError, Seahorse::Client::Response, ] end, 'bloomfilter-rb' => proc do my_require 'bloomfilter-rb' end, 'hashie' => proc do my_require 'hashie' [ Hashie::Mash, ] end, 'hike' => proc do my_require 'hike' [ Hike::Trail, ] end, 'http' => proc do my_require 'http' end, 'http-form_data' => proc do my_require 'http/form_data' end, 'http_parser.rb' => proc do my_require 'http/parser' end, 'minitest' => proc do my_require 'minitest' my_require 'minitest/mock' my_require 'minitest/spec' my_require 'minitest/reporters' end, 'rack-test' => proc do my_require 'rack/test' end, 'pagerduty-full' => proc do my_require 'pagerduty/full' end, 'puma' => proc do my_require 'puma' my_require 'puma/configuration' my_require 'puma/launcher' my_require 'puma/server' end, 'term-ansicolor' => proc do my_require 'term/ansicolor' end, 'rexml' => proc do my_require "rexml/document" my_require "rexml/streamlistener" end, 'rubyzip' => proc do my_require "zip" my_require 'zip/filesystem' end, 'nsq-ruby' => proc do my_require 'nsq' end, 'mongo-ruby-driver' => proc do my_require 'mongo' end, 'presto-client-ruby' => proc do my_require 'presto-client' end, 'bcrypt-ruby' => proc do my_require 'bcrypt' end, 'xml-simple' => proc do my_require 'xmlsimple' end, 'sinatra-contrib' => proc do # We can't my_require all of 'sinatra/contrib' since we put `raise` in them my_require 'sinatra/content_for' my_require 'sinatra/capture' my_require 'sinatra/multi_route' my_require 'sinatra/contrib/version' end, 'sqreen' => proc do ENV['SQREEN_DISABLE'] = 'true' my_require 'sqreen' end, 'thin-attach_socket' => proc do my_require 'thin' my_require 'thin/attach_socket' end, 'sinatra-partial' => proc do my_require 'sinatra/partial' end, 'rack_csrf' => proc do my_require 'rack/csrf' end, 'rack-flash3' => proc do my_require 'rack-flash' end, 'google-api-client' => proc do # There are lots more but this is all we use for now my_require 'google/apis/calendar_v3' my_require 'google/apis/drive_v3' my_require 'google/apis/gmail_v1' end, 'concurrent-ruby' => proc do my_require 'concurrent' end, 'cld2' => proc do my_require 'cld' end, 'twitter_cldr' => proc do my_require 'twitter_cldr' [ TwitterCldr::Shared::Territories, ] end, 'stackprof' => proc do my_require 'stackprof' [ StackProf::Report, ] end, 'sprockets' => proc do my_require 'sprockets' [ Sprockets::Cache::FileStore, Sprockets::Environment, Sprockets::Manifest, ] end, 'signet' => proc do my_require 'signet' my_require 'signet/oauth_2/client' end, 'roo' => proc do my_require 'roo' [ Roo::Spreadsheet, ] version = Bundler.load.specs['roo'][0].stub.version if Gem::Requirement.create('<2.0.0').satisfied_by?(version) [ Roo::Excel, ] end end, 'rack-protection' => proc do my_require 'rack-protection' [ Rack::Protection::FrameOptions, ] end, 'rack' => proc do my_require 'rack' [ Rack::BodyProxy, Rack::Cascade, Rack::Chunked, Rack::CommonLogger, Rack::ConditionalGet, Rack::Config, Rack::ContentLength, Rack::ContentType, Rack::ETag, Rack::Events, Rack::File, Rack::Files, Rack::Deflater, Rack::Directory, Rack::ForwardRequest, Rack::Handler, Rack::Head, Rack::Lint, Rack::Lock, Rack::Logger, Rack::MediaType, Rack::MethodOverride, Rack::Mime, Rack::NullLogger, Rack::Recursive, Rack::Reloader, Rack::RewindableInput, Rack::Runtime, Rack::Sendfile, Rack::Server, Rack::ShowExceptions, Rack::ShowStatus, Rack::Static, Rack::TempfileReaper, Rack::URLMap, Rack::Utils, Rack::Multipart, Rack::MockResponse, Rack::Response, Rack::Auth::Basic, Rack::Auth::AbstractRequest, Rack::Auth::AbstractHandler, Rack::Auth::Digest::MD5, Rack::Auth::Digest::Nonce, Rack::Auth::Digest::Params, Rack::Auth::Digest::Request, Rack::Session::Cookie, Rack::Session::Pool, Rack::Session::Memcache, Rack::Handler::CGI, Rack::Handler::FastCGI, Rack::Handler::WEBrick, Rack::Handler::LSWS, Rack::Handler::SCGI, Rack::Handler::Thin, Rack::Multipart::Generator, Rack::Multipart::UploadedFile, ] end, 'poncho' => proc do [ Poncho::ClientError, Poncho::JSONMethod, Poncho::Resource, Poncho::ValidationError, ] end, 'parser' => proc do my_require 'parser' my_require 'parser/ruby24' end, 'net' => proc do my_require 'net/dns' my_require 'net/ftp' my_require 'net/http' my_require 'net/http/digest_auth' my_require 'net/http/persistent' my_require 'net/imap' my_require 'net/protocol' my_require 'net/sftp' my_require 'net/smtp' my_require 'net/ssh' my_require 'net/ssh/proxy/http' my_require 'rubyntlm' end, 'openssl' => proc do my_require 'openssl' [ OpenSSL::X509::Store, ] end, 'mail' => proc do my_require 'mail' [ Mail::Address, Mail::AddressList, Mail::Parsers::AddressListsParser, Mail::Parsers::ContentDispositionParser, Mail::Parsers::ContentLocationParser, Mail::Parsers::ContentTransferEncodingParser, Mail::Parsers::ContentTypeParser, Mail::Parsers::DateTimeParser, Mail::Parsers::EnvelopeFromParser, Mail::Parsers::MessageIdsParser, Mail::Parsers::MimeVersionParser, Mail::Parsers::PhraseListsParser, Mail::Parsers::ReceivedParser, ] end, 'kramdown' => proc do my_require 'kramdown' [ Kramdown::Converter::Html, ] end, 'ice_cube' => proc do my_require 'ice_cube' [ IceCube::DailyRule, IceCube::MonthlyRule, IceCube::WeeklyRule, IceCube::YearlyRule, IceCube::Schedule, ] end, 'i18n' => proc do my_require 'i18n' [ I18n::Backend, I18n::Backend::Base, I18n::Backend::InterpolationCompiler, I18n::Backend::Cache, I18n::Backend::CacheFile, I18n::Backend::Cascade, I18n::Backend::Chain, I18n::Backend::Fallbacks, I18n::Backend::Flatten, I18n::Backend::Gettext, I18n::Backend::KeyValue, I18n::Backend::Memoize, I18n::Backend::Metadata, I18n::Backend::Pluralization, I18n::Backend::Simple, I18n::Backend::Transliterator, I18n::Config, I18n::Gettext, I18n::Gettext::Helpers, I18n::Locale, I18n::Locale::Fallbacks, I18n::Locale::Tag, I18n::Locale::Tag::Parents, I18n::Locale::Tag::Rfc4646, I18n::Locale::Tag::Simple, I18n::Tests, I18n::Middleware, ] end, 'http-cookie' => proc do my_require 'http-cookie' my_require 'http/cookie_jar' my_require 'mechanize' [ HTTP::CookieJar::AbstractSaver, ] end, 'faraday' => proc do my_require 'faraday' [ Faraday::Request::Multipart, Faraday::Request::UrlEncoded, Faraday::Response::RaiseError, ] end, 'escort' => proc do my_require 'escort' [ Escort::App, Escort::Setup::Dsl::Options, Escort::Trollop::Parser, ] end, 'digest' => proc do my_require 'digest' [ Digest::SHA2, ] end, 'coderay' => proc do my_require 'coderay' [ CodeRay::VERSION, CodeRay::FileType, CodeRay::Tokens, CodeRay::TokensProxy, CodeRay::TokenKinds, CodeRay::PluginHost, CodeRay::Plugin, CodeRay::Scanners, CodeRay::Scanners::Scanner, CodeRay::Scanners::Java::BuiltinTypes, CodeRay::Scanners::Ruby::Patterns, CodeRay::Scanners::Ruby::StringState, CodeRay::Encoders, CodeRay::Encoders::Encoder, CodeRay::Encoders::HTML::Output, CodeRay::Encoders::HTML::CSS, CodeRay::Encoders::HTML::Numbering, CodeRay::Styles, CodeRay::Styles::Style, CodeRay::Duo, CodeRay::WordList, ] end, 'byebug' => proc do my_require 'byebug' my_require 'byebug/core' end, 'racc' => proc do my_require 'parser' end, 'rbnacl' => proc do my_require 'rbnacl/libsodium' end, 'double-bag-ftps' => proc do my_require 'double_bag_ftps' end, 'livechat_client' => proc do my_require 'livechat' end, 'nio4r' => proc do my_require 'nio' end, 'rgl' => proc do my_require 'rgl/adjacency' my_require 'rgl/implicit' my_require 'rgl/traversal' my_require 'rgl/graph_iterator' my_require 'rgl/edmonds_karp' end, 'redcarpet' => proc do my_require 'redcarpet' my_require 'redcarpet/render_strip' end, 'sequel' => proc do my_require 'sequel' my_require 'sequel/sql' end, 'sequel_pg' => proc do # sequel_pg assumes that it was required by the adapter class in sequel # (i.e., it's not mean to be required manually). But also, sequel lazily # loads the adapter class depending on the scheme of the database being # connected to. Since 'srb init' never only requires and never connects, # we need to manually load the adapter class ourself, which will then # transitively load sequel_pg my_require 'sequel/adapters/postgres' end, 'will_paginate' => proc do my_require 'will_paginate' my_require 'will_paginate/collection' end, 'yard' => proc do my_require 'yard' [ YARD::CodeObjects::MethodObject, YARD::Docstring, YARD::Handlers::Ruby::Base, YARD::Registry, YARD::Tags::Library, YARD::Tags::Tag, ] end, 'mocha' => proc do my_require 'minitest/spec' # mocha forces you to do this first my_require 'mocha/setup' end, 'bundler-audit' => proc do my_require 'bundler/audit' end, 'google-protobuf' => proc do my_require 'google/protobuf' end, 'multipart-post' => proc do my_require 'net/http/post/multipart' end, 'rdl' => proc do # needed because this isn't required by default in the Gemfile my_require 'rdl_disable' end, 'rss' => proc do # needed because this isn't required our Gemfile but some of our gems use it my_require 'rss' end, 'ruby-ole' => proc do my_require 'ole/storage' end, 'ruby-rc4' => proc do my_require 'rc4' end, 'ruby-prof' => proc do my_require 'ruby-prof' [ RubyProf::AbstractPrinter, ] end, 'stylus-source' => proc do my_require 'stylus' end, 'time-utils' => proc do my_require 'time/utils' my_require 'date/utils' end, 'thor' => proc do my_require 'thor' [ Thor::Actions, Thor::Group, ] end, 'unicode-display_width' => proc do my_require 'unicode/display_width' end, 'simplecov-html' => proc do my_require 'simplecov' end, 'thwait' => proc do my_require 'thwait' end, 'matrix' => proc do my_require 'matrix' end, 'zxcvbn-ruby' => proc do my_require 'zxcvbn' end, 'elasticsearch-transport' => proc do my_require 'elasticsearch' end, 'tzinfo' => proc do my_require 'tzinfo' my_require 'tzinfo/data' TZInfo::Timezone.all.map(&:canonical_zone) end, 'pry-doc' => proc do my_require 'pry' my_require 'pry-doc' end, 'taxjar-ruby' => proc do my_require 'taxjar' end, 'nokogiri' => proc do my_require 'nokogiri' my_require 'webrobots' my_require 'html_truncator' end, 'actionpack' => proc do my_require 'action_pack' my_require 'action_controller/railtie' [ ActionController::Base, ActionController::API, ActionController::Base, ActionController::Metal, ActionController::Middleware, ActionController::Renderer, ActionController::FormBuilder, ActionController::TestCase, ActionController::TemplateAssertions, ActionController::ConditionalGet, ActionController::ContentSecurityPolicy, ActionController::Cookies, ActionController::DataStreaming, ActionController::DefaultHeaders, ActionController::EtagWithTemplateDigest, ActionController::EtagWithFlash, ActionController::FeaturePolicy, ActionController::Flash, ActionController::ForceSSL, ActionController::Head, ActionController::Helpers, ActionController::HttpAuthentication, ActionController::BasicImplicitRender, ActionController::ImplicitRender, ActionController::Instrumentation, ActionController::Logging, ActionController::MimeResponds, ActionController::ParamsWrapper, ActionController::Redirecting, ActionController::Renderers, ActionController::Rendering, ActionController::RequestForgeryProtection, ActionController::Rescue, ActionController::Streaming, ActionController::StrongParameters, ActionController::ParameterEncoding, ActionController::Testing, ActionController::UrlFor, ActionDispatch::SystemTestCase ] end, 'actionview' => proc do my_require 'action_view' my_require 'action_view/railtie' [ ActionView::Base, ActionView::Context, ActionView::Digestor, ActionView::Helpers, ActionView::LookupContext, ActionView::Layouts, ActionView::PathSet, ActionView::RecordIdentifier, ActionView::Rendering, ActionView::RoutingUrlFor, ActionView::Template, ActionView::Template::Error, ActionView::Template::RawFile, ActionView::Template::Handlers, ActionView::Template::HTML, ActionView::Template::Inline, ActionView::Template::Sources, ActionView::Template::Text, ActionView::Template::Types, ActionView::UnboundTemplate, ActionView::ViewPaths, ActionView::TestCase, ActionView::CacheExpiry, ] end, 'actiontext' => proc do my_require 'action_text' my_require 'action_text/engine' [ ActionText::Attachable, ActionText::Attachables::ContentAttachment, ActionText::Attachables::MissingAttachable, ActionText::Attachables::RemoteImage, ActionText::AttachmentGallery, ActionText::Attachment, ActionText::Attachments::Caching, ActionText::Attachments::Minification, ActionText::Attachments::TrixConversion, ActionText::Attribute, ActionText::Content, ActionText::Fragment, ActionText::HtmlConversion, ActionText::PlainTextConversion, ActionText::Serialization, ActionText::TrixAttachment, ] end, 'actionmailbox' => proc do my_require 'action_mailbox' my_require 'action_mailbox/engine' [ ActionMailbox::Base, ActionMailbox::Router, ActionMailbox::TestCase, ] end, 'actioncable' => proc do my_require 'action_cable' my_require 'action_cable/engine' [ ActionCable::Server, ActionCable::Server::Base, ActionCable::Server::Broadcasting, ActionCable::Server::Connections, ActionCable::Server::Configuration, ActionCable::Server::Worker, ActionCable::Connection, ActionCable::Connection::Authorization, ActionCable::Connection::Base, ActionCable::Connection::ClientSocket, ActionCable::Connection::Identification, ActionCable::Connection::InternalChannel, ActionCable::Connection::MessageBuffer, ActionCable::Connection::Stream, ActionCable::Connection::StreamEventLoop, ActionCable::Connection::Subscriptions, ActionCable::Connection::TaggedLoggerProxy, ActionCable::Connection::TestCase, ActionCable::Connection::WebSocket, ActionCable::Channel, ActionCable::Channel::Base, ActionCable::Channel::Broadcasting, ActionCable::Channel::Callbacks, ActionCable::Channel::Naming, ActionCable::Channel::PeriodicTimers, ActionCable::Channel::Streams, ActionCable::Channel::TestCase, ActionCable::RemoteConnections, ActionCable::SubscriptionAdapter, ActionCable::SubscriptionAdapter::Base, ActionCable::SubscriptionAdapter::Test, ActionCable::SubscriptionAdapter::SubscriberMap, ActionCable::SubscriptionAdapter::ChannelPrefix, ActionCable::TestHelper, ActionCable::TestCase, ] end, 'actionmailer' => proc do my_require 'action_mailer' my_require 'action_mailer/railtie' [ ActionMailer::Base, ActionMailer::MessageDelivery, ] end, 'activejob' => proc do my_require 'active_job' my_require 'active_job/railtie' [ ActiveJob::Base, ] end, 'activemodel' => proc do my_require 'active_model' my_require 'active_model/railtie' end, 'activesupport' => proc do my_require 'active_support' [ ActiveSupport::Concern, ActiveSupport::ActionableError, ActiveSupport::CurrentAttributes, ActiveSupport::Dependencies, ActiveSupport::DescendantsTracker, ActiveSupport::ExecutionWrapper, ActiveSupport::Executor, ActiveSupport::FileUpdateChecker, ActiveSupport::EventedFileUpdateChecker, ActiveSupport::LogSubscriber, ActiveSupport::Notifications, ActiveSupport::Reloader, ActiveSupport::BacktraceCleaner, ActiveSupport::ProxyObject, ActiveSupport::Benchmarkable, ActiveSupport::Cache, ActiveSupport::Cache::FileStore, ActiveSupport::Cache::MemoryStore, ActiveSupport::Cache::NullStore, ActiveSupport::Cache::Strategy::LocalCache, ActiveSupport::Cache::Strategy::LocalCache::Middleware, ActiveSupport::Callbacks, ActiveSupport::Configurable, ActiveSupport::Deprecation, ActiveSupport::Digest, ActiveSupport::Gzip, ActiveSupport::Inflector, ActiveSupport::JSON, ActiveSupport::KeyGenerator, ActiveSupport::MessageEncryptor, ActiveSupport::MessageVerifier, ActiveSupport::Multibyte, ActiveSupport::Multibyte::Chars, ActiveSupport::Multibyte::Unicode, ActiveSupport::NumberHelper, ActiveSupport::NumberHelper::NumberConverter, ActiveSupport::NumberHelper::RoundingHelper, ActiveSupport::NumberHelper::NumberToRoundedConverter, ActiveSupport::NumberHelper::NumberToDelimitedConverter, ActiveSupport::NumberHelper::NumberToHumanConverter, ActiveSupport::NumberHelper::NumberToHumanSizeConverter, ActiveSupport::NumberHelper::NumberToPhoneConverter, ActiveSupport::NumberHelper::NumberToCurrencyConverter, ActiveSupport::NumberHelper::NumberToPercentageConverter, ActiveSupport::OptionMerger, ActiveSupport::OrderedHash, ActiveSupport::OrderedOptions, ActiveSupport::StringInquirer, ActiveSupport::TaggedLogging, ActiveSupport::XmlMini, ActiveSupport::ArrayInquirer, ActiveSupport::Duration, ActiveSupport::Duration::ISO8601Parser, ActiveSupport::Duration::ISO8601Serializer, ActiveSupport::TimeWithZone, ActiveSupport::TimeZone, ActiveSupport::Rescuable, ActiveSupport::SafeBuffer, ActiveSupport::TestCase, ] end, 'activerecord' => proc do my_require 'active_record' my_require 'active_record/railtie' [ ActiveRecord::Schema, ActiveRecord::Migration::Current, ] end, 'activestorage' => proc do my_require 'active_storage' my_require 'active_storage/engine' [ ActiveStorage::Attached, ActiveStorage::Attached::Changes::CreateOne, ActiveStorage::Attached::Changes::CreateMany, ActiveStorage::Attached::Changes::CreateOneOfMany, ActiveStorage::Attached::Changes::DeleteOne, ActiveStorage::Attached::Changes::DeleteMany, ActiveStorage::Service, ActiveStorage::Service::Configurator, ActiveStorage::Previewer, ActiveStorage::Analyzer, ActiveStorage::Transformers::Transformer, ActiveStorage::Transformers::ImageProcessingTransformer, ActiveStorage::Transformers::MiniMagickTransformer, ] end, 'rdoc' => proc do my_require 'rdoc' [ RDoc::Options, ] end, 'paul_revere' => proc do my_require 'paul_revere' [ Announcement, ] end, 'clearance' => proc do my_require 'clearance' [ ClearanceMailer, ] end, 'webmock' => proc do my_require 'webmock' WebMock.singleton_class.send(:define_method, :enable!) do puts "\nWebMock.enable! is incompatible with Sorbet. Please don't unconditionally do it on requiring this file." end end, 'codecov' => proc do my_require 'simplecov' my_require 'codecov' end, 'sparql' => proc do my_require 'sparql' [ SPARQL::Algebra, SPARQL::Algebra::Aggregate, SPARQL::Algebra::Evaluatable, SPARQL::Algebra::Expression, SPARQL::Algebra::Operator, SPARQL::Algebra::Query, SPARQL::Algebra::Update, SPARQL::Client, SPARQL::Grammar, SPARQL::Grammar::Parser, SPARQL::Grammar::Terminals, SPARQL::Results, SPARQL::VERSION, ] end, 'sparql-client' => proc do my_require 'sparql/client' [ SPARQL::Client::Query, SPARQL::Client::Repository, SPARQL::Client::Update, SPARQL::Client::VERSION, ] end, 'selenium-webdriver' => proc do my_require 'selenium/webdriver' [ Selenium::WebDriver::Chrome, Selenium::WebDriver::Chrome::Bridge, Selenium::WebDriver::Chrome::Driver, Selenium::WebDriver::Chrome::Profile, Selenium::WebDriver::Chrome::Options, Selenium::WebDriver::Chrome::Service, Selenium::WebDriver::Edge, Selenium::WebDriver::Firefox, Selenium::WebDriver::Firefox::Extension, Selenium::WebDriver::Firefox::ProfilesIni, Selenium::WebDriver::Firefox::Profile, Selenium::WebDriver::Firefox::Driver, Selenium::WebDriver::Firefox::Options, Selenium::WebDriver::Firefox::Service, Selenium::WebDriver::IE, Selenium::WebDriver::IE::Driver, Selenium::WebDriver::IE::Options, Selenium::WebDriver::IE::Service, Selenium::WebDriver::Remote, Selenium::WebDriver::Remote::Bridge, Selenium::WebDriver::Remote::Driver, Selenium::WebDriver::Remote::Response, Selenium::WebDriver::Remote::Capabilities, Selenium::WebDriver::Remote::Http::Common, Selenium::WebDriver::Remote::Http::Default, Selenium::WebDriver::Safari, Selenium::WebDriver::Safari::Bridge, Selenium::WebDriver::Safari::Driver, Selenium::WebDriver::Safari::Options, Selenium::WebDriver::Safari::Service, Selenium::WebDriver::Support, ] end, 'friendly_id' => proc do my_require 'friendly_id' [ FriendlyId::History, FriendlyId::Slug, FriendlyId::SimpleI18n, FriendlyId::Reserved, FriendlyId::Scoped, FriendlyId::Slugged, FriendlyId::Finders, FriendlyId::SequentiallySlugged ] end, 'rdf' => proc do my_require 'rdf' my_require 'rdf/ntriples' [ RDF::Countable, RDF::Durable, RDF::Enumerable, RDF::Indexable, RDF::Mutable, RDF::Queryable, RDF::Readable, RDF::TypeCheck, RDF::Transactable, RDF::Writable, RDF::Graph, RDF::IRI, RDF::Literal, RDF::Node, RDF::Resource, RDF::Statement, RDF::URI, RDF::Value, RDF::Term, RDF::List, RDF::Format, RDF::Reader, RDF::ReaderError, RDF::Writer, RDF::WriterError, RDF::NTriples, RDF::NQuads, RDF::Changeset, RDF::Dataset, RDF::Repository, RDF::Transaction, RDF::Query, RDF::Query::Pattern, RDF::Query::Solution, RDF::Query::Solutions, RDF::Query::Variable, RDF::Query::HashPatternNormalizer, RDF::Vocabulary, RDF::StrictVocabulary, RDF::Util, RDF::Util::Aliasing, RDF::Util::Cache, RDF::Util::File, RDF::Util::Logger, RDF::Util::UUID, RDF::Util::Coercions, ] end, 'rspec-core' => proc do my_require 'rspec/core' [ RSpec::SharedContext, RSpec::Core::ExampleStatusPersister, RSpec::Core::Profiler, RSpec::Core::DidYouMean, RSpec::Core::Formatters::DocumentationFormatter, RSpec::Core::Formatters::HtmlFormatter, RSpec::Core::Formatters::FallbackMessageFormatter, RSpec::Core::Formatters::ProgressFormatter, RSpec::Core::Formatters::ProfileFormatter, RSpec::Core::Formatters::JsonFormatter, RSpec::Core::Formatters::BisectDRbFormatter, RSpec::Core::Formatters::ExceptionPresenter, RSpec::Core::Formatters::FailureListFormatter, ] end, 'rspec-mocks' => proc do my_require 'rspec/mocks' [ RSpec::Mocks::AnyInstance, RSpec::Mocks::ExpectChain, RSpec::Mocks::StubChain, RSpec::Mocks::MarshalExtension, RSpec::Mocks::Matchers::HaveReceived, RSpec::Mocks::Matchers::Receive, RSpec::Mocks::Matchers::ReceiveMessageChain, RSpec::Mocks::Matchers::ReceiveMessages, ] end, 'rspec-support' => proc do my_require 'rspec/support' [ RSpec::Support::Differ, ] end, 'rspec-expectations' => proc do my_require 'rspec/expectations' [ RSpec::Expectations::BlockSnippetExtractor, RSpec::Expectations::FailureAggregator, RSpec::Matchers::BuiltIn::BeAKindOf, RSpec::Matchers::BuiltIn::BeAnInstanceOf, RSpec::Matchers::BuiltIn::BeBetween, RSpec::Matchers::BuiltIn::Be, RSpec::Matchers::BuiltIn::BeComparedTo, RSpec::Matchers::BuiltIn::BeFalsey, RSpec::Matchers::BuiltIn::BeNil, RSpec::Matchers::BuiltIn::BePredicate, RSpec::Matchers::BuiltIn::BeTruthy, RSpec::Matchers::BuiltIn::BeWithin, RSpec::Matchers::BuiltIn::Change, RSpec::Matchers::BuiltIn::Compound, RSpec::Matchers::BuiltIn::ContainExactly, RSpec::Matchers::BuiltIn::Cover, RSpec::Matchers::BuiltIn::EndWith, RSpec::Matchers::BuiltIn::Eq, RSpec::Matchers::BuiltIn::Eql, RSpec::Matchers::BuiltIn::Equal, RSpec::Matchers::BuiltIn::Exist, RSpec::Matchers::BuiltIn::Has, RSpec::Matchers::BuiltIn::HaveAttributes, RSpec::Matchers::BuiltIn::Include, RSpec::Matchers::BuiltIn::All, RSpec::Matchers::BuiltIn::Match, RSpec::Matchers::BuiltIn::NegativeOperatorMatcher, RSpec::Matchers::BuiltIn::OperatorMatcher, RSpec::Matchers::BuiltIn::Output, RSpec::Matchers::BuiltIn::PositiveOperatorMatcher, RSpec::Matchers::BuiltIn::RaiseError, RSpec::Matchers::BuiltIn::RespondTo, RSpec::Matchers::BuiltIn::Satisfy, RSpec::Matchers::BuiltIn::StartWith, RSpec::Matchers::BuiltIn::ThrowSymbol, RSpec::Matchers::BuiltIn::YieldControl, RSpec::Matchers::BuiltIn::YieldSuccessiveArgs, RSpec::Matchers::BuiltIn::YieldWithArgs, RSpec::Matchers::BuiltIn::YieldWithNoArgs, ] end, 'kaminari-core' => proc do my_require 'kaminari/core' end, 'kaminari-activerecord' => proc do my_require 'kaminari/activerecord' end, 'kaminari-actionview' => proc do my_require 'kaminari/actionview' end, 'sxp' => proc do my_require 'sxp' [ SXP::Pair, SXP::List, SXP::Generator, SXP::Reader, SXP::Reader::Basic, SXP::Reader::Extended, SXP::Reader::Scheme, SXP::Reader::CommonLisp, SXP::Reader::SPARQL, ] end, 'ebnf' => proc do my_require 'ebnf' [ EBNF::Base, EBNF::BNF, EBNF::LL1, EBNF::LL1::Lexer, EBNF::LL1::Parser, EBNF::LL1::Scanner, EBNF::Parser, EBNF::Rule, EBNF::Writer, EBNF::VERSION, ] end, 'doorkeeper' => proc do my_require 'doorkeeper' version = Bundler.load.specs['doorkeeper'][0].stub.version if Gem::Requirement.create('>=5.4.0').satisfied_by?(version) [ Doorkeeper::Errors, Doorkeeper::OAuth, Doorkeeper::Rake, Doorkeeper::Request, Doorkeeper::Server, Doorkeeper::StaleRecordsCleaner, Doorkeeper::Validations, Doorkeeper::VERSION, Doorkeeper::AccessGrantMixin, Doorkeeper::AccessTokenMixin, Doorkeeper::ApplicationMixin, Doorkeeper::Helpers::Controller, Doorkeeper::Request::Strategy, Doorkeeper::Request::AuthorizationCode, Doorkeeper::Request::ClientCredentials, Doorkeeper::Request::Code, Doorkeeper::Request::Password, Doorkeeper::Request::RefreshToken, Doorkeeper::Request::Token, Doorkeeper::OAuth::BaseRequest, Doorkeeper::OAuth::AuthorizationCodeRequest, Doorkeeper::OAuth::BaseResponse, Doorkeeper::OAuth::CodeResponse, Doorkeeper::OAuth::Client, Doorkeeper::OAuth::ClientCredentialsRequest, Doorkeeper::OAuth::CodeRequest, Doorkeeper::OAuth::ErrorResponse, Doorkeeper::OAuth::Error, Doorkeeper::OAuth::InvalidTokenResponse, Doorkeeper::OAuth::InvalidRequestResponse, Doorkeeper::OAuth::ForbiddenTokenResponse, Doorkeeper::OAuth::NonStandard, Doorkeeper::OAuth::PasswordAccessTokenRequest, Doorkeeper::OAuth::PreAuthorization, Doorkeeper::OAuth::RefreshTokenRequest, Doorkeeper::OAuth::Scopes, Doorkeeper::OAuth::Token, Doorkeeper::OAuth::TokenIntrospection, Doorkeeper::OAuth::TokenRequest, Doorkeeper::OAuth::TokenResponse, Doorkeeper::OAuth::Authorization::Code, Doorkeeper::OAuth::Authorization::Context, Doorkeeper::OAuth::Authorization::Token, Doorkeeper::OAuth::Authorization::URIBuilder, Doorkeeper::OAuth::Client::Credentials, Doorkeeper::OAuth::ClientCredentials::Validator, Doorkeeper::OAuth::ClientCredentials::Creator, Doorkeeper::OAuth::ClientCredentials::Issuer, Doorkeeper::OAuth::Helpers::ScopeChecker, Doorkeeper::OAuth::Helpers::URIChecker, Doorkeeper::OAuth::Helpers::UniqueToken, Doorkeeper::OAuth::Hooks::Context, Doorkeeper::Models::Accessible, Doorkeeper::Models::Expirable, Doorkeeper::Models::Orderable, Doorkeeper::Models::Scopes, Doorkeeper::Models::Reusable, Doorkeeper::Models::ResourceOwnerable, Doorkeeper::Models::Revocable, Doorkeeper::Models::SecretStorable, Doorkeeper::Orm::ActiveRecord, Doorkeeper::Rails::Helpers, Doorkeeper::Rails::Routes, Doorkeeper::SecretStoring::Base, Doorkeeper::SecretStoring::Plain, Doorkeeper::SecretStoring::Sha256Hash, Doorkeeper::SecretStoring::BCrypt, ] end end, }
Class Method Summary collapse
-
.my_require(gem) ⇒ Object
This is so that the autoloader doesn’t treat these as mandatory requires before loading this file.
- .require_all_gems ⇒ Object
- .require_gem(gem) ⇒ Object
Class Method Details
.my_require(gem) ⇒ Object
This is so that the autoloader doesn’t treat these as mandatory requires before loading this file
1188 1189 1190 |
# File 'lib/gem_loader.rb', line 1188 def self.my_require(gem) require gem # rubocop:disable PrisonGuard/NoDynamicRequire end |
.require_all_gems ⇒ Object
1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 |
# File 'lib/gem_loader.rb', line 1213 def self.require_all_gems require 'bundler/setup' require 'bundler/lockfile_parser' specs = [] # Do not load gems in Gemfile where require is false gemfile_dependencies = Bundler.load.dependencies. reject { |dep| dep.autorequire && dep.autorequire.empty? } required_dependency_names = gemfile_dependencies.map(&:name) lockfile_parser = Bundler::LockfileParser.new(File.read(Bundler.default_lockfile)) lockfile_parser.specs.each do |spec| # Only include the spec for a gem and it's dependencies if it's autorequired. if required_dependency_names.include?(spec.name) specs << spec specs << spec.dependencies end end specs.flatten! specs.uniq! { |spec| spec.name } specs = specs.to_set specs.sort_by(&:name).each do |gemspec| begin require_gem(gemspec.name) rescue LoadError => e puts "LoadError: #{e}" rescue NameError => e puts "NameError: #{e}" end end begin Bundler.require rescue NameError => e puts "NameError: #{e}" end end |
.require_gem(gem) ⇒ Object
1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 |
# File 'lib/gem_loader.rb', line 1192 def self.require_gem(gem) if gem == NO_GEM require_all_gems return end loader = GEM_LOADER[gem] if loader begin loader.call rescue NameError => e puts "NameError: #{e}" end else begin require gem # rubocop:disable PrisonGuard/NoDynamicRequire rescue NameError => e puts "NameError: #{e}" end end end |