[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

[ANN] csspool 0.2.0 Released

Aaron Patterson

11/29/2007 6:15:00 AM

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforg...

CSSpool (pronounced "cesspool") is a validating SAC parser for CSS. The parser
calls methods on a document handler depending on what it has found. CSSPool
currently only supports CSS 2.1. CSSPool will not yield invalid properties or
selectors.

Changes:

## 0.2.0

* Added CSS::SAC::Parser#parse_rule to parse a single rule.
* Added CSS::StyleSheet#find_rule for finding a particular rule.
* Added CSS::StyleSheet#rules_matching for finding all rules matching a node.
* Added CSS::StyleSheet#create_rule for creating a new rule.
* Added CSS::StyleSheet#find_all_rules_matching for finding all rules that match
any node in the passed in document.
* Added .eql? to selector AST
* Added .hash to selector AST
* Added .eql? to LexicalUnits
* Added .hash to LexicalUnits
* Added CSS::StyleSheet#to_css
* Added CSS::StyleSheet#reduce!
* CSS::StyleSheet is now the default document handler

* <http://csspool.rubyforg...

This is a tenderlovemaking dot com joint.

--
Aaron Patterson
http://tenderlovem...

5 Answers

Cristi Balan

11/29/2007 7:28:00 AM

0

On 11/29/07, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
> Gossip Girl says:
>
> csspool version 0.2.0 has been released!
>
> * <http://csspool.rubyforg...
>
> CSSpool (pronounced "cesspool") is a validating SAC parser for CSS. The parser
> calls methods on a document handler depending on what it has found. CSSPool
> currently only supports CSS 2.1. CSSPool will not yield invalid properties or
> selectors.
>
> [Snip]
Hi Aaron,

Long time listener, first time caller... Love the show, btw.

I've been toying around with the lib and I noticed some issues:

- the Manifest tends to contain a .DS_Store entry which crashes rake
package so rake install_gem (the way i usually install csspool) fails
with: "Don't know how to build task '.DS_Store'".

- the example on the homepage doesn't work for me. I get
"uninitialized constant CSS::SAC::Parse (NameError)" when I try to run
it. However, the earlier examples, which show inheriting from
CSS::SAC::DocumentHandler work for me, if i also add a "require
'rubygems'" first

- the following css breaks css breaks the parser and makes it ignore
all rules and declarations after the error. In css, with browsrs at
least, an error should just ignore the respective property or
properties, so I was expecting similar behaviour. I'll try to get my
hands into the ragel stuff, but this might take a while since I
haven't done any before, saw a presentation at euruko, tho :).

So, the bad css that's preventing me from getting a pink background
and a blue p:
a { color: red; }
body { border: solid 1px; #000; color: pink; }
p { color: blue; }

>
> This is a tenderlovemaking dot com joint.
>
> --
> Aaron Patterson
> http://tenderlovem...
>
>

Again, thanks a lot for this project, it's looking really cool and useful :).

Cheers,
Cristi

--
Cristi BALAN
http://ev...

John Joyce

11/29/2007 12:12:00 PM

0


On Nov 29, 2007, at 1:27 AM, Cristi BALAN wrote:

> On 11/29/07, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
>> Gossip Girl says:
>>
>> csspool version 0.2.0 has been released!
>>
>> * <http://csspool.rubyforg...
>>
>> CSSpool (pronounced "cesspool") is a validating SAC parser for
>> CSS. The parser
>> calls methods on a document handler depending on what it has
>> found. CSSPool
>> currently only supports CSS 2.1. CSSPool will not yield invalid
>> properties or
>> selectors.
>>
>> [Snip]
> Hi Aaron,
>
> Long time listener, first time caller... Love the show, btw.
>
> I've been toying around with the lib and I noticed some issues:
>
> - the Manifest tends to contain a .DS_Store entry which crashes rake
> package so rake install_gem (the way i usually install csspool) fails
> with: "Don't know how to build task '.DS_Store'".
>
> - the example on the homepage doesn't work for me. I get
> "uninitialized constant CSS::SAC::Parse (NameError)" when I try to run
> it. However, the earlier examples, which show inheriting from
> CSS::SAC::DocumentHandler work for me, if i also add a "require
> 'rubygems'" first
>
> - the following css breaks css breaks the parser and makes it ignore
> all rules and declarations after the error. In css, with browsrs at
> least, an error should just ignore the respective property or
> properties, so I was expecting similar behaviour. I'll try to get my
> hands into the ragel stuff, but this might take a while since I
> haven't done any before, saw a presentation at euruko, tho :).
>
> So, the bad css that's preventing me from getting a pink background
> and a blue p:
> a { color: red; }
> body { border: solid 1px; #000; color: pink; }
> p { color: blue; }
>
>>

Problem here is bad CSS.
you have:
> body { border: solid 1px; #000; color: pink; }
which could also be this with more space:
body {
border: solid 1px; /* this border will default to black, but perhaps
you intended the #000 to be in this line notice your extra
semicolon ... */
#000; /* no property listed! */
color: pink; /* this gives you pink text */
}

When you don't make it so tightly compact, you can see the mistake, I
hope. Nothing there is going to give you a pink background.
you need to put:
background-color: pink;
Inside of either declaration body or p.

Cristi Balan

11/29/2007 6:50:00 PM

0

On 11/29/07, John Joyce <dangerwillrobinsondanger@gmail.com> wrote:
>
> On Nov 29, 2007, at 1:27 AM, Cristi BALAN wrote:
>
> > On 11/29/07, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
> >> Gossip Girl says:
> >>
> >> csspool version 0.2.0 has been released!
> >>
> >> * <http://csspool.rubyforg...
> >>
> >> CSSpool (pronounced "cesspool") is a validating SAC parser for
> >> CSS. The parser
> >> calls methods on a document handler depending on what it has
> >> found. CSSPool
> >> currently only supports CSS 2.1. CSSPool will not yield invalid
> >> properties or
> >> selectors.
> >>
> >> [Snip]
> > Hi Aaron,
> >
> > Long time listener, first time caller... Love the show, btw.
> >
> > I've been toying around with the lib and I noticed some issues:
> >
> > [SNIP other issues]
> >
> > - the following css breaks css breaks the parser and makes it ignore
> > all rules and declarations after the error. In css, with browsrs at
> > least, an error should just ignore the respective property or
> > properties, so I was expecting similar behaviour. I'll try to get my
> > hands into the ragel stuff, but this might take a while since I
> > haven't done any before, saw a presentation at euruko, tho :).
> >
> > So, the bad css that's preventing me from getting a pink background
> > and a blue p:
> > a { color: red; }
> > body { border: solid 1px; #000; color: pink; }
> > p { color: blue; }
> >
> >>
>
> Problem here is bad CSS.
> you have:
> > body { border: solid 1px; #000; color: pink; }
> which could also be this with more space:
> body {
> border: solid 1px; /* this border will default to black, but perhaps
> you intended the #000 to be in this line notice your extra
> semicolon ... */
> #000; /* no property listed! */
> color: pink; /* this gives you pink text */
> }
>
> When you don't make it so tightly compact, you can see the mistake, I
> hope. Nothing there is going to give you a pink background.
> you need to put:
> background-color: pink;
> Inside of either declaration body or p.
>
>
Hi John,

Yes, and the error is there on purpose.

I was reporting a bug in the way such errors are handled by the
csspool parser. Instead of just skipping the declarations you
correctly noticed in the css, it stops parsing the rest of the css
file.

I would have expected the color: pink for body and p { color: blue; }
to get parsed in spite of the error.

Cristi

--
Cristi BALAN
http://ev...

Aaron Patterson

11/30/2007 2:28:00 AM

0

On Thu, Nov 29, 2007 at 04:27:39PM +0900, Cristi BALAN wrote:
> On 11/29/07, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
> > Gossip Girl says:
> >
> > csspool version 0.2.0 has been released!
> >
> > * <http://csspool.rubyforg...
> >
> > CSSpool (pronounced "cesspool") is a validating SAC parser for CSS. The parser
> > calls methods on a document handler depending on what it has found. CSSPool
> > currently only supports CSS 2.1. CSSPool will not yield invalid properties or
> > selectors.
> >
> > [Snip]
> Hi Aaron,
>
> Long time listener, first time caller... Love the show, btw.
>
> I've been toying around with the lib and I noticed some issues:
>
> - the Manifest tends to contain a .DS_Store entry which crashes rake
> package so rake install_gem (the way i usually install csspool) fails
> with: "Don't know how to build task '.DS_Store'".

Doh. I don't know why that is there. I'll remove it and release again.

>
> - the example on the homepage doesn't work for me. I get
> "uninitialized constant CSS::SAC::Parse (NameError)" when I try to run
> it. However, the earlier examples, which show inheriting from
> CSS::SAC::DocumentHandler work for me, if i also add a "require
> 'rubygems'" first

Yes, because I made a typo. Try CSS::SAC::Parser.

>
> - the following css breaks css breaks the parser and makes it ignore
> all rules and declarations after the error. In css, with browsrs at
> least, an error should just ignore the respective property or
> properties, so I was expecting similar behaviour. I'll try to get my
> hands into the ragel stuff, but this might take a while since I
> haven't done any before, saw a presentation at euruko, tho :).
>
> So, the bad css that's preventing me from getting a pink background
> and a blue p:
> a { color: red; }
> body { border: solid 1px; #000; color: pink; }
> p { color: blue; }

Great! Thanks for the test case. I'll add that to my test suite and
get it working.

>
> >
> > This is a tenderlovemaking dot com joint.
> >
> > --
> > Aaron Patterson
> > http://tenderlovem...
> >
> >
>
> Again, thanks a lot for this project, it's looking really cool and useful :).

Thanks. Keep the bugs coming, I need them to make it mo betta.

--
Aaron Patterson
http://tenderlovem...

John Joyce

11/30/2007 12:13:00 PM

0


On Nov 29, 2007, at 12:49 PM, Cristi BALAN wrote:

> On 11/29/07, John Joyce <dangerwillrobinsondanger@gmail.com> wrote:
>>
>> On Nov 29, 2007, at 1:27 AM, Cristi BALAN wrote:
>>
>>> On 11/29/07, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
>>>> Gossip Girl says:
>>>>
>>>> csspool version 0.2.0 has been released!
>>>>
>>>> * <http://csspool.rubyforg...
>>>>
>>>> CSSpool (pronounced "cesspool") is a validating SAC parser for
>>>> CSS. The parser
>>>> calls methods on a document handler depending on what it has
>>>> found. CSSPool
>>>> currently only supports CSS 2.1. CSSPool will not yield invalid
>>>> properties or
>>>> selectors.
>>>>
>>>> [Snip]
>>> Hi Aaron,
>>>
>>> Long time listener, first time caller... Love the show, btw.
>>>
>>> I've been toying around with the lib and I noticed some issues:
>>>
>>> [SNIP other issues]
>>>
>>> - the following css breaks css breaks the parser and makes it ignore
>>> all rules and declarations after the error. In css, with browsrs at
>>> least, an error should just ignore the respective property or
>>> properties, so I was expecting similar behaviour. I'll try to get my
>>> hands into the ragel stuff, but this might take a while since I
>>> haven't done any before, saw a presentation at euruko, tho :).
>>>
>>> So, the bad css that's preventing me from getting a pink background
>>> and a blue p:
>>> a { color: red; }
>>> body { border: solid 1px; #000; color: pink; }
>>> p { color: blue; }
>>>
>>>>
>>
>> Problem here is bad CSS.
>> you have:
>>> body { border: solid 1px; #000; color: pink; }
>> which could also be this with more space:
>> body {
>> border: solid 1px; /* this border will default
>> to black, but perhaps
>> you intended the #000 to be in this line notice your extra
>> semicolon ... */
>> #000; /* no property listed! */
>> color: pink; /* this gives you pink text */
>> }
>>
>> When you don't make it so tightly compact, you can see the mistake, I
>> hope. Nothing there is going to give you a pink background.
>> you need to put:
>> background-color: pink;
>> Inside of either declaration body or p.
>>
>>
> Hi John,
>
> Yes, and the error is there on purpose.
>
> I was reporting a bug in the way such errors are handled by the
> csspool parser. Instead of just skipping the declarations you
> correctly noticed in the css, it stops parsing the rest of the css
> file.
>
> I would have expected the color: pink for body and p { color: blue; }
> to get parsed in spite of the error.
>
> Cristi
>
> --
> Cristi BALAN
> http://ev...
>
Oops, sorry for the noise then!!
I'm always amazed at browsers parsing css so quickly anyway.
Even more amazed that they usually get it right. (well not all of them)