2013-04-10 3 views
6

ASPNET MVCサイトでRubyスクリプト(https://github.com/zmoazeni/csscss)を使用したいと考えています。私は以前のルビーの経験がないので、私の質問は素朴なものになる可能性があります。ironruby nugetパッケージをインストールして、バニラで使用することができます。VS2012

ironruby nugetパッケージをインポートしてrubyスクリプトを実行することはできますか?

私の目標は、Rubyスクリプトの周りに.netラッパーを置き、出力をHTMLとして出力することです。


は、これまでのところ私はグーグルで試してみましたIronRubyの使用を開始するが、私は理解していることをあまり見つかっていないと作業得ることができ、(はいそれは曖昧に聞こえるが、私はルビーやIronRubyのを知っていないと見つけることができませんでした始めてみると良い簡単なガイドです)。

+0

[何を試しましたか?](http:// mattgemmell。com/2008/12/08/what-have-you-tried /) –

答えて

3

https://github.com/edymtt/csscss-from-ironrubyでは、IronRubyを使用してソースコードcsscssを実行してファイルからロードされたCSSを分析する方法をコンソールアプリケーションに示す簡単な実証が実現しました。この結果を達成するために、私はこのSO questionから始めました。私が使った追加のリソースは、プログラムのコメントで見つけることができます。私はASP.net MVCサイトでこのコードを試していません - とにかくこのサンプルは良い出発点でなければなりません。

csscssのソースとそれに依存するライブラリをソリューションに手作業で入れなければならないため、このソリューションは少し面倒です。別の解決策は、マシンにRubyをインストールし、gemを使用してcsscssをインストールし(自動的に依存関係をダウンロードする)、.NETからプログラムを呼び出すことです。このアプローチをサンプルにも示します。このソリューションでは、WebサーバーにRubyをインストールする必要があります。私はcsscssを実行するためにIronRubyのを使用して、私はそれに応じ概念実証を更新したアプローチをsemplifyすることができましたザックMoazeniからの提案に続き

UPDATE 2013年9月2日18時15分UTC。一言で言えば:私はプロジェクトのローカルフォルダにcsscssjson(および依存宝石)をダウンロードしバンドラを使用しました.NETプログラム外

  • .NETプログラムで作成しましたbundlerによって作成されたgemフォルダ内のライブラリのすべてのパスを検出する機能を作成しました(gemsフォルダを見つけ、各サブフォルダにlibフォルダを含めることによってこのアルゴリズムはthis SO thread);
  • csscssを起動する前に、このリストのリストをIronRubyインタプリタに渡しました。

このアプローチはgembundlerによって与えられた更新のしやすさでプログラムを実行するだけで、.NETを使用する能力を結合する必要があります。

+0

私はIronRubyに慣れていませんが、[bundler](http://gembundler.com/)と互換性がありますか?もしそうなら、それはあなたに 'Gemfile'で多くの問題を保存するかもしれません。 –

+0

フィードバックをいただきありがとうございます - 私はこれに関するいくつかの研究と実験を行う必要があります。 IronRubyは、コマンドラインとホストされたエンジンの両方からの宝石をサポートしているようです(それぞれ[ここ](http://stackoverflow.com/questions/44973/can-i-run-rubygems-in-ironruby) (http://rubyforge.org/pipermail/ironruby-core/2010-July/007119.html))しかし、今のところ、Ruby 2.0の下で 'bundler'を使ってローカルフォルダにダウンロードした' csscss'を読み込むことができません。 – edymtt

+0

@ ZachMoazeni私はあなたの提案をIronRubyの下で 'csscss'を実行するより良い方法を考案するために使用することができました。再度、感謝します! – edymtt

2

私はcsscssの作成者です。このため、JSON出力を作成しました。

csscss -j file.css 

これは完璧な解決策ではないのですが、代わりに人間が読めるテキストを出力する、それはあなたがどんな言語/ランタイムから解析することができ、出力JSONます。

関連する問題