[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

This is how we Roll

Trans

11/4/2007 6:04:00 PM

Hi--

I've decide to go ahead and announce Roll(s) today. Even though the
code still needs fine-tuning and the docs aren't completely up to
date, I've been using it productively for the last few weeks. So I
figure it's probably a good time being the end of RubyConf --it will
give the lucky attendees something interesting to come home to.

Note, the project is called "Roll", but that doesn't always sound
right in a sentence, so I call it 'Rolls' too, whenever that fits
better.

Okay. So what is it? Roll is a library manager. What it does is
provide an OOP interface to Ruby libs/apps. So you can do things like
this:

facets = library('facets')
facets.version #=> "2.0.4"
facets.require 'functor'

You can also specify versions:

facets = library('facets', "= 2.0.3")
facets.version #=> "2.0.3"
facets.require 'functor'

Of course, in common use, you probably would just do:

require 'facets:functor'

And for backward/non-roll compatibility (though lookup is less
efficient):

require 'facets/functor'

That's really the main of the code side of Roll. Pretty simple. It's
really just the loading of libs you're used to with some enhancements,
like versioning and prevention of file name clashing (with Rolls there
is always a way to get to a file).

The big advantage of Rolls plays out on the file system. Rolls can use
your development repositories as-is. There is no need to go through an
installation phase every time you make a change to you lib/app. This
can save a developer a lot of time. It also means that Ruby software
can be "installed" just by dropping a copy of a repository into a
location Rolls knows about --no need to create a specialized package.
For instance just doing an 'svn co', will effectively "install" a
project that's "ready-to-roll".

An important thing to understand is that Roll is not a package
manager. It does not download packages, resolved dependencies and
install them. Rolls is _library manager_ which is _package format
neutral_. It can work with any of them. However, it also largely
mitigates the need for specialized package formats --at least as far
as Ruby libs go, b/c a snapshot of a developers repo (minus anything
you don't want to distribute of course) would do just as well. As
such, it represents the first important piece in my overall strategy
for creating a near "zero-install" system for Ruby.

Alright, that's the super brief explanation. Like I said, there's
still work to do -- such as Windows bin/ support, and how best to
handle libs with c extensions. But it's coming along nicely. Anyone
who is interested in helping, just drop me a line.

http://roll.rub...

T.


14 Answers

Giles Bowkett

11/4/2007 6:50:00 PM

0

> Note, the project is called "Roll", but that doesn't always sound
> right in a sentence, so I call it 'Rolls' too, whenever that fits
> better.

Just a note - the Rails team was kind of surprised to discover that
"rails" was drug slang for lines of cocaine. Rolls is also drug slang,
at least on the East Coast, for Ecstasy.

Obviously this whole R, L, S combination is cursed in terms of open
source project names that turn out to be accidental drug references.
That's why I'm doing away with that entire set of phonemes for my
naming scheme, and releasing a project called Acid instead. No R, no
L, no S. I'm good.

--
Giles Bowkett

Blog: http://gilesbowkett.bl...
Portfolio: http://www.gilesg...
Tumblelog: http://giles.t...

M. Edward (Ed) Borasky

11/4/2007 7:14:00 PM

0

Giles Bowkett wrote:
>> Note, the project is called "Roll", but that doesn't always sound
>> right in a sentence, so I call it 'Rolls' too, whenever that fits
>> better.
>>
>
> Just a note - the Rails team was kind of surprised to discover that
> "rails" was drug slang for lines of cocaine. Rolls is also drug slang,
> at least on the East Coast, for Ecstasy.
>
> Obviously this whole R, L, S combination is cursed in terms of open
> source project names that turn out to be accidental drug references.
> That's why I'm doing away with that entire set of phonemes for my
> naming scheme, and releasing a project called Acid instead. No R, no
> L, no S. I'm good.
>
>
Sometimes I just want to smack people ... how do we weed out that sort
of thing? Maybe I'm just a crank.

<ducking>

Giles Bowkett

11/4/2007 7:20:00 PM

0

> >> Note, the project is called "Roll", but that doesn't always sound
> >> right in a sentence, so I call it 'Rolls' too, whenever that fits
> >> better.
> >
> > Just a note - the Rails team was kind of surprised to discover that
> > "rails" was drug slang for lines of cocaine. Rolls is also drug slang,
> > at least on the East Coast, for Ecstasy.
> >
> > Obviously this whole R, L, S combination is cursed in terms of open
> > source project names that turn out to be accidental drug references.
> > That's why I'm doing away with that entire set of phonemes for my
> > naming scheme, and releasing a project called Acid instead. No R, no
> > L, no S. I'm good.
>
> Sometimes I just want to smack people ... how do we weed out that sort
> of thing? Maybe I'm just a crank.

Yeah, it makes me kind of critical too, but an acid tongue never did
anyone any good. We just need to tweak people's thinking a bit, so
nobody looks like a dope.

--
Giles Bowkett

Blog: http://gilesbowkett.bl...
Portfolio: http://www.gilesg...
Tumblelog: http://giles.t...

Robert Dober

11/4/2007 7:28:00 PM

0

On Nov 4, 2007 8:14 PM, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
> Giles Bowkett wrote:
> >> Note, the project is called "Roll", but that doesn't always sound
> >> right in a sentence, so I call it 'Rolls' too, whenever that fits
> >> better.
> >>
> >
> > Just a note - the Rails team was kind of surprised to discover that
> > "rails" was drug slang for lines of cocaine. Rolls is also drug slang,
> > at least on the East Coast, for Ecstasy.
> >
> > Obviously this whole R, L, S combination is cursed in terms of open
> > source project names that turn out to be accidental drug references.
> > That's why I'm doing away with that entire set of phonemes for my
> > naming scheme, and releasing a project called Acid instead. No R, no
> > L, no S. I'm good.
> >
> >
> Sometimes I just want to smack people ... how do we weed out that sort
> of thing? Maybe I'm just a crank.
>
> <ducking>
>
>
I believe "Roll" is a goof name for a project that "Rocks", well I
have not checked it out yet ;)

R.


--
what do I think about Ruby?
http://ruby-smalltalk.blo...

Robert Dober

11/4/2007 7:29:00 PM

0

> I believe "Roll" is a goof name for a project that "Rocks", well I
> have not checked it out yet ;)
WHY did they put the "f" right next to the "d" ????


G O O D name that was of course
Sorry Tom.
R.


--
what do I think about Ruby?
http://ruby-smalltalk.blo...

barryahanna

11/4/2007 7:43:00 PM

0

Note: parts of this message were removed by the gateway to make it a legal Usenet post.

unsubscribe

On 04/11/2007, Trans <transfire@gmail.com> wrote:
>
> Hi--
>
> I've decide to go ahead and announce Roll(s) today. Even though the
> code still needs fine-tuning and the docs aren't completely up to
> date, I've been using it productively for the last few weeks. So I
> figure it's probably a good time being the end of RubyConf --it will
> give the lucky attendees something interesting to come home to.
>
> Note, the project is called "Roll", but that doesn't always sound
> right in a sentence, so I call it 'Rolls' too, whenever that fits
> better.
>
> Okay. So what is it? Roll is a library manager. What it does is
> provide an OOP interface to Ruby libs/apps. So you can do things like
> this:
>
> facets = library('facets')
> facets.version #=> "2.0.4"
> facets.require 'functor'
>
> You can also specify versions:
>
> facets = library('facets', "= 2.0.3")
> facets.version #=> "2.0.3"
> facets.require 'functor'
>
> Of course, in common use, you probably would just do:
>
> require 'facets:functor'
>
> And for backward/non-roll compatibility (though lookup is less
> efficient):
>
> require 'facets/functor'
>
> That's really the main of the code side of Roll. Pretty simple. It's
> really just the loading of libs you're used to with some enhancements,
> like versioning and prevention of file name clashing (with Rolls there
> is always a way to get to a file).
>
> The big advantage of Rolls plays out on the file system. Rolls can use
> your development repositories as-is. There is no need to go through an
> installation phase every time you make a change to you lib/app. This
> can save a developer a lot of time. It also means that Ruby software
> can be "installed" just by dropping a copy of a repository into a
> location Rolls knows about --no need to create a specialized package.
> For instance just doing an 'svn co', will effectively "install" a
> project that's "ready-to-roll".
>
> An important thing to understand is that Roll is not a package
> manager. It does not download packages, resolved dependencies and
> install them. Rolls is _library manager_ which is _package format
> neutral_. It can work with any of them. However, it also largely
> mitigates the need for specialized package formats --at least as far
> as Ruby libs go, b/c a snapshot of a developers repo (minus anything
> you don't want to distribute of course) would do just as well. As
> such, it represents the first important piece in my overall strategy
> for creating a near "zero-install" system for Ruby.
>
> Alright, that's the super brief explanation. Like I said, there's
> still work to do -- such as Windows bin/ support, and how best to
> handle libs with c extensions. But it's coming along nicely. Anyone
> who is interested in helping, just drop me a line.
>
> http://roll.rub...
>
> T.
>
>
>

Giles Bowkett

11/4/2007 9:49:00 PM

0

> I believe "Roll" is a goo[d] name for a project that "Rocks", well I
> have not checked it out yet ;)

if it atones at all for the threadjack, it does look like a very good
idea, and it may indeed rock.

--
Giles Bowkett

Blog: http://gilesbowkett.bl...
Portfolio: http://www.gilesg...
Tumblelog: http://giles.t...

Trans

11/4/2007 10:41:00 PM

0



On Nov 4, 1:49 pm, "Giles Bowkett" <gil...@gmail.com> wrote:
> > Note, the project is called "Roll", but that doesn't always sound
> > right in a sentence, so I call it 'Rolls' too, whenever that fits
> > better.
>
> Just a note - the Rails team was kind of surprised to discover that
> "rails" was drug slang for lines of cocaine. Rolls is also drug slang,
> at least on the East Coast, for Ecstasy.
>
> Obviously this whole R, L, S combination is cursed in terms of open
> source project names that turn out to be accidental drug references.
> That's why I'm doing away with that entire set of phonemes for my
> naming scheme, and releasing a project called Acid instead. No R, no
> L, no S. I'm good.

Hmm... maybe I have a subconscious tendency I was unaware of...

http://blow.rub...

;)

Anyhow. I realize it's Sunday, and a lot of you are candy flipping
tonight, but I'd prefer to get the conversation back. Hey, no worries,
but if you don't mind...

Something I wanted to demonstrate that I forgot to put in my original
post:

irb(main):001:0> Library.list
=> ["box", "nitro", "roll", "icli", "mint", "og", "glue",
"tmail", "english", "webrite", "blow", "xact", "raw",
"ruby", "ratch", "facets"]

T.


Joel VanderWerf

11/4/2007 10:47:00 PM

0

Trans wrote:

> irb(main):001:0> Library.list
> => ["box", "nitro", "roll", "icli", "mint", "og", "glue",
> "tmail", "english", "webrite", "blow", "xact", "raw",
> "ruby", "ratch", "facets"]

Any reason this returns a list of strings, and not of library objects?

--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Trans

11/4/2007 11:52:00 PM

0



On Nov 4, 5:46 pm, Joel VanderWerf <vj...@path.berkeley.edu> wrote:
> Trans wrote:
> > irb(main):001:0> Library.list
> > => ["box", "nitro", "roll", "icli", "mint", "og", "glue",
> > "tmail", "english", "webrite", "blow", "xact", "raw",
> > "ruby", "ratch", "facets"]
>
> Any reason this returns a list of strings, and not of library objects?

Very much so. Rolls doesn't bother to objectify a library until you
request it as such. This helps reduce the memory footprint, and boost
performance.

T.