[ANN] csspool 0.2.0 Released

A

Aaron Patterson

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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.rubyforge.org/>

This is a tenderlovemaking dot com joint.
 
C

Cristi BALAN

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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.

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

Cheers,
Cristi
 
J

John Joyce

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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.
 
C

Cristi BALAN

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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
 
A

Aaron Patterson

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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.
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.
 
J

John Joyce

Gossip Girl says:

csspool version 0.2.0 has been released!

* <http://csspool.rubyforge.org/>

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
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)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top