我对在asp.net MVC站点内使用ruby脚本(https://github.com/zmoazeni/csscss)感兴趣。我以前没有ruby的经验,所以我的问题可能是天真的。
是否可以导入ironruby nuget包并执行ruby脚本?
我的目标是在ruby脚本周围放置一个。net包装器,并将输出作为HTML。
到目前为止,我已经尝试谷歌开始使用ironruby,但没有找到很多我理解和可以工作的,(是的,这听起来模糊,但我不知道ruby或ironruby,找不到任何好的简单入门指南)。
我在https://github.com/edymtt/csscss-from-ironruby上实现了一个简单的概念证明,它在一个控制台应用程序中展示了如何使用IronRuby运行csscss
的源代码来分析从文件加载的CSS。为了达到这个结果,我从这个SO问题开始——你可以在节目的评论中找到我使用的额外资源。我还没有在ASP.net MVC站点中尝试过这段代码——无论如何,这个示例应该是一个很好的起点。
此解决方案维护起来有点麻烦,因为您必须手动将csscss
及其依赖库的源代码放入解决方案中。另一种解决方案是在机器上安装Ruby,使用gem
安装csscss
(这样它就会自动下载依赖项),然后从。net调用程序——我也将在示例中展示这种方法。注意,这个解决方案需要你在web服务器上安装Ruby。
UPDATE 2013-09-02 18:15 UTC根据Zach Moazeni的建议,我已经能够简化使用IronRuby运行csscss
的方法,并且我已经相应地更新了概念证明。简而言之:
- 在。net程序之外,我已经使用捆绑器将
csscss
和json
(以及依赖的gems)下载到项目的本地文件夹;在。net程序中,我编写了一个函数来发现bundler
创建的gem文件夹中库的所有路径(通过查找gems
文件夹,然后为每个子文件夹包括lib
文件夹,该算法受到这个SO线程的启发);在启动csscss
之前,我已经把这个路径列表传递给了IronRuby解释器。
这种方法应该结合了只使用。net运行程序的能力,以及gem
和bundler
提供的轻松更新。
我是csscss的作者,因此我构建了JSON输出。
csscss -j file.css
这不是一个完美的解决方案,但它将输出JSON,而不是输出人类可读的文本,您可以从任何语言/运行时解析