Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # force_require.rb
- #
- # == Usage
- #
- # require 'bundler/setup'
- # require './force_require'
- #
- # force_require 'g'
- # g 'foo'
- #
- # require 'g' # => LoadError
- #
- module Kernel
- def new_require(name)
- begin
- org_require name
- rescue LoadError
- if Thread.current[:force_require_mode]
- force_require name
- else
- raise
- end
- end
- end
- alias_method :org_require, :require
- alias_method :require, :new_require
- def force_require(name)
- Thread.current[:force_require_mode] = true
- Gem.all_load_paths.each do |dir|
- Dir[File.join(dir, "#{name}#{Gem.suffix_pattern}")].each do |file|
- require file
- return true
- end
- end
- raise LoadError, "no such file to load -- #{name}"
- ensure
- Thread.current[:force_require_mode] = false
- end
- alias_method :require!, :force_require
- end
Add Comment
Please, Sign In to add comment