[Nitro] Build scripts as modules or plain scripts
transfire at gmail.com
transfire at gmail.com
Thu Jan 4 10:07:54 EST 2007
gabriele renzi wrote:
> transfire at gmail.com ha scritto:
>
> > Of course this effectively puts encapsulation, at least at the top
> > level, on a per-file basis. But in many respects that seems kind of
> > nice. It increases flexability and reduces configuration complexity.
> >
> > So what do your think? Is this technique worth promoting? Or am I being
> > silly and should just wrap all my scripts in modules?
>
>
> first: adding the "as_foo" just adds useless complexity, imho, just load
> a module and include id when needed.
That's true. I was primarily just highlighting the potential of this
approach with those methods.
> Then, if you just add
>
> and a directory is a module, too so that
> require 'foo'
> loads module Foo
> and
> require 'foo/bar'
> requires module Foo::Bar
>
> and you have the python's import system, which is a very good thing imo
> and could reduce ruby's stdlib size of a 1/2% :)
interesting... some thoughts
* it would require all core extensions be prefixed with '::' (eg.
::Kernel).
* would toplevel need a name, eg. ::Toplevel. how else could we load
anything to it? or maybe we shouldn't be able to?
* what if two libs have the same path but are in different load paths
(a la gems) -- though I suppose a smart developer would make sure that
didn't happen. For example, all things Facets are in
{load_path}/facets/.
* being able to assign the name seems much more flexible though --this
would prevent potential name clashes of items that might share the same
path but are within different load paths. (I suppose we could have two
different methods).
* if we added #new to module, would we even need to bother with classes
directly? Ie.
class Module
def new(*args,&blk)
Class.new{ include self }.new(*args,&blk)
end
end
(hmm... how would we access the underlying class?)
Thoughts?
btw. what does python use for the name of its "require" method?
T.
More information about the Nitro-general
mailing list