ruby-ejs
ruby-ejs copied to clipboard
Fix for turnaries always being truthy when passed to escaping EJS tags.
The implementation was prepending an empty string blindly to the front of the fragment provided to the tags which caused the turnary to always be evaluated truthily.
Example:
<%- this.ad.activity ? this.ad.activity.activity : "" %>
...was producing:
(''+this.ad.activity ? this.ad.activity.activity : "")
... which is always truthy because of the type coercion. It now produces:
(''+(this.ad.activity ? this.ad.activity.activity : ""))
... which properly honors the intention of the evaluation.
"||" operators are also broken in the current implementation and fixed with this pull request:
<%- this.value || "no value" %>
@onyxrev nice job, I merged this code with #20, and add specs for it