Top Level Namespace
Defined Under Namespace
Modules: ActiveRecord, DB2, Test Classes: Fixture, Fixtures, Mysql
Constant Summary collapse
Instance Method Summary collapse
-
#require_library_or_gem(library_name) ⇒ Object
Method that requires a library, ensuring that rubygems is loaded This is used in the database adaptors to require DB drivers.
Instance Method Details
#require_library_or_gem(library_name) ⇒ Object
Method that requires a library, ensuring that rubygems is loaded This is used in the database adaptors to require DB drivers. Reasons: (1) database drivers are the only third-party library that Rails depend upon (2) they are often installed as gems
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 8 def require_library_or_gem(library_name) begin require library_name rescue LoadError => cannot_require # 1. Requiring the module is unsuccessful, maybe it's a gem and nobody required rubygems yet. Try. begin require 'rubygems' rescue LoadError => rubygems_not_installed raise cannot_require end # 2. Rubygems is installed and loaded. Try to load the library again begin require library_name rescue LoadError => gem_not_installed raise cannot_require end end end |