Method: #require_relative
- Defined in:
- lib/wedge/require.rb
#require_relative(name) ⇒ Object
rewrite require_relative
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/wedge/require.rb', line 19 def require_relative(name) caller_str = "#{caller[0]}".gsub(/:.+$/, '').gsub(/\.rb$/, '') caller_path_name = caller_str.gsub(%r{(#{Dir.pwd}/|.*wedge)}, '').gsub(/:.+$/, '').gsub(/^\//, '') path_name = caller_path_name.gsub(/(?<=\/)([^\/]*)$/, "#{name}") path_name = File.(path_name).sub("#{Dir.pwd}/", '') if path_name['..'] path_name = path_name.gsub(/\//, '__') file = caller_str.gsub(/(?<=\/)([^\/]*)$/, "#{name}") caller_path_name = caller_path_name.gsub(/\//, '__') if !caller_path_name['.'] && !(Wedge.config.requires[caller_path_name] ||= []).include?(path_name) Wedge.config.requires[caller_path_name] << path_name end Kernel.require file end |