This is still a work in progress, but I wanted to go ahead and get it up. I'm concentrating on two things, primarily:
This is meant to address #6.
Let's do this with an integration test.
Break up the default options tests.
Actual unit-style test for Muddle module.
Test default config. Rename #premailer to #premailer_options.
We don't need to be this permissive with our API.
I don't feel compelled to unit test attr_accessor.
Test (probably too extensively) customized options).
Don't need this block thing any more.
Much more focused test on just what the parser does: manages filters.
Reviewer of the future: The diffs will probably be horrific to read. It might be easier to understand if you just looked at the final state of each spec file touched. Non-spec files touched should have reasonable diffs.
Reorg the boilerplate attributes spec.
Reorg the boilerplate css specs.
Reorg boilerplate non-inline css.
Reorg premailer filter specs.
Move code over to a helper.
@kerin This is good to review now. Let me know if you have any questions. Also if you want to talk about why I organized stuff the way I did, etc.
This looks good. Would you mind updating the README to reflect the new configuration interface? I'm assuming the intention is that you'd set Muddle.config directly...
Ack. Not my intention at all. I'd meant to change Muddle.configure to call Muddle::Configuration#configure. Muddle.config is meant as internal-to-the-gem access only (for reading and setting from the configuration object). Anyway, my intent was not to change the public API.
sweet - +1