Skip to content
This repository has been archived by the owner on Aug 17, 2023. It is now read-only.

Fixed problem parsing boolean attributes in html style attribute dicts #42

Merged
merged 1 commit into from
Dec 12, 2016

Conversation

rowanseymour
Copy link
Member

@rowanseymour rowanseymour commented Dec 9, 2016

Can't currently parse %span(disabled id="foo")

assert dict(self._parse(
"(:class='test' :data-number = 123\n foo=\"bar\")"
)) == {'class': 'test', 'data-number': '123', 'foo': 'bar'}
"(:class='test' data-number = 123\n 'foo'=\"bar\" \t disabled)"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are colons legal syntax? I would expect this to blow up..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like for {:class} dicts it's the actual Haml syntax, but they're not used for HTML-style dicts http://haml.info/docs/yardoc/file.REFERENCE.html#attributes_

Currently we just ignore them, but seems it should be an error to use one in an HTML-style dict

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually looks like they're only used with the => syntax (which we do support), so it should be an error to do...

%span{:class:"test"}
%span(:class="test")

but not..

%span{:class=>"test"}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WTF that is the ugliest syntax I've ever seen, what an abomination! Wonder what the reasoning around that is.

My bias for anything like this is to be strict instead of ignoring things that look goofy.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was how you made a hash (dict) in Ruby before 1.9 apparently http://effectif.com/ruby/update-your-project-for-ruby-19-hash-syntax

Agreed on disallowing this - have recorded that at #43

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HAML is so weird.

@coveralls
Copy link

coveralls commented Dec 9, 2016

Coverage Status

Coverage increased (+0.001%) to 99.773% when pulling a6ac026 on boolean_attribute_fix into 0e033f4 on master.

3 similar comments
@coveralls
Copy link

Coverage Status

Coverage increased (+0.001%) to 99.773% when pulling a6ac026 on boolean_attribute_fix into 0e033f4 on master.

@coveralls
Copy link

Coverage Status

Coverage increased (+0.001%) to 99.773% when pulling a6ac026 on boolean_attribute_fix into 0e033f4 on master.

@coveralls
Copy link

Coverage Status

Coverage increased (+0.001%) to 99.773% when pulling a6ac026 on boolean_attribute_fix into 0e033f4 on master.

@rowanseymour rowanseymour merged commit 4367a94 into master Dec 12, 2016
@rowanseymour rowanseymour deleted the boolean_attribute_fix branch December 12, 2016 07:02
@rowanseymour rowanseymour added this to the Release 1.0 milestone Dec 13, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants