【发布时间】:2017-05-14 18:43:09
【问题描述】:
在code 字符串中,我存储了一段代码,可以是 CSS、SASS、SCSS、JavaScript 或 CoffeeScript。
内容来自用户,我需要在保存到数据库之前验证语法。
我需要检查语法是否正确。目前,我正在使用一个有效的丑陋黑客。你有更好的解决方案吗?
def check_js
if language == 'coffee' # CoffeeScript
CoffeeScript.compile code
else # JavaScript
Uglifier.compile code
end
rescue ExecJS::RuntimeError => e
errors.add :code, e.message
end
def check_css
if language == 'css' # CSS
Sass::CSS.new(code).render
else # SASS, SCSS
Sass.compile code, syntax: language.to_sym
end
rescue Sass::SyntaxError => e
errors.add :code, e.message
end
【问题讨论】:
-
我认为要找到更好的解决方案,看看你在哪里调用它并解释为什么需要它会非常有用。
-
@Caffeinated.tech 感谢您的建议,我添加了这句话,希望它更清楚“内容来自用户,我需要在保存到 satabase 之前验证语法。”跨度>
-
@dan-klasson 我猜你得到了最好的答案
-
@Benj 忘了给你点赞。如果我在你的鞋子里,我会做同样的事情。如果我能以某种方式改进你的代码,我会发布一个实际的答案。
标签: ruby-on-rails sass coffeescript