From: Ilias Lazaridis Date: 2011-06-24T06:59:49+09:00 Subject: Re: RFC - One word alias for require_relative On 11 Ιούν, 20:35, Ilias Lazaridis wrote: > This is a simple Request for Comments. > > Scenario: > > require_relative 'lib/alter' > require 'alibrary' > > Some project manager complains about "require_relative", and asks you > to find a one-word alias. > > Which name would you select and for what reasons? > > Requirements > must: > * one word > > optional: > * ideally a 7 letter word (please note that responses on ruby-talk do not arrive on comp.lang.ruby due to an abrupt interruption of the gateway-service. If you post to ruby-talk, you can try to add "comp.lang.ruby@googlegroups.com" to your recipients list to reach additionally the usenet group) Solutions: require 'lib/alter' # 2011-06-11 by Intransition (extend functionality) require! 'lib/alter' # 2011-06-17 by Gary Wright rr 'lib/alter' # 2011-06-19 by Ted Han involve 'lib/alter' # 2011-06-16 by Sam Duncan locally 'lib/alter' # 2011-06-11 by Rob Biedenharn uniload 'lib/alter' # my request 'lib/alter' # my include 'lib/alter' # my relative 'lib/alter' # my - As I realized that "require_relative" does *not* load from the global library paths, merging "require" and "require_relative" seems the way to go. This was suggested already somehow here: 2011-06-11 by Intransition - Combined with the suggested term "require!", and extending the functionality even more, the result would be this one: module Kernel def require!(*libs) libs.each do |lib| begin require_relative(lib) rescue LoadError require lib end end end end require! 'json', 'yaml', 'sinatra' - This version of "require" is more powerful, and so it would "deserve" the "!". require/require_relative remain untouched (full backwards compatibility) #original require_relative 'lib/baselib' require 'sinatra"' #new require! 'lib/baselib', 'sinatra' - I still like the word "involve" more, but as "require!" reminds clearly the original "require", it's still the first choice. . -- http://lazaridis.com