From: jbw Date: 2010-03-31T00:46:59+09:00 Subject: Re: require and include?? On Tue, Mar 30, 2010 at 4:05 PM, rantingrick wrote: > Hello, > > I am having trouble understanding the difference between require and > include. Also i need to know how to import a certain function or class > into my current namespace. http://ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html This might clear things up, but to summarise include adds methods, require adds modules. > Now before i go any further i should explain that i am a Python > programmer and i understand that whilst Ruby and Python share some > similarities there are major differences between the languages,  and > that is what seems to have me stumped here. > > In python we use the "import" statement to bring modules,  functions, > whatever. And the import statement can function in many ways, > observe... > > if i want to bring all the names from the math module into my current > namespace without the need to qualify the names i can say...(note: > dir() shows the current namespace!) >>>> dir() > ['__builtins__', '__doc__', '__name__', '__package__'] >>>> from math import * >>>> dir() > ['__builtins__', '__doc__', '__name__', '__package__', 'acos', > 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', > 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', > 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', > 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', > 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] >>>> hypot(3,4) > 5.0 > > Now if i want to just use a certain function, class, constant, i can > call for just those specific names like... Not sure there is a clean way to do this. >>>> dir() > ['__builtins__', '__doc__', '__name__', '__package__'] >>>> from math import hypot, pi >>>> dir() > ['__builtins__', '__doc__', '__name__', '__package__', 'hypot', 'pi'] >>>> pi > 3.1415926535897931 >>>> hypot(3,4) > 5.0 >>>> > > Now if i want to bring a reference to the module in and then qualify > every thing within the module by perpending the > "module_name.identifier" i can say... > >>>> import math >>>> dir() > ['__builtins__', '__doc__', '__name__', '__package__', 'math'] >>>> math.hypot(3,4) > 5.0 > > Ok, i know Ruby is different, so tell me how i do the same thing only > in Ruby terms. Specifically i need to bring in a function that resides > in a module in a different file. How do i do this? > >