2013-04-10 5 views
6

Sono interessato all'utilizzo di uno script ruby ​​(https://github.com/zmoazeni/csscss) con un sito ASPC MVC. Non ho precedenti esperienze con il rubino, quindi la mia domanda potrebbe essere ingenua.può essere installato il pacchetto ironruby nuget utilizzato in una vaniglia VS2012

È possibile importare il pacchetto ironruby nuget ed eseguire gli script ruby?

Il mio obiettivo sarebbe quello di mettere un .net wrapper attorno agli script ruby ​​(s) e mettere l'output in formato HTML.


Finora ho provato Googling Primi passi con IronRuby, ma non hanno trovato tanto che ho capito e potuto ottenere di lavoro, (sì, quel suono vago, ma non so rubino o IronRuby e non riusciva a trovare qualsiasi buona guida semplice su come iniziare).

+0

[Cosa hai provato?] (Http: // mattgemmell.it/2008/12/08/what-have-you-tried /) –

risposta

3

Ho realizzato un semplice proof of concept allo https://github.com/edymtt/csscss-from-ironruby che mostra in un'applicazione console come utilizzare IronRuby per eseguire il codice sorgente di csscss per analizzare un CSS caricato da un file. Per raggiungere questo risultato ho iniziato da questo SO question - puoi trovare le risorse aggiuntive che ho usato nei commenti del programma. Non ho provato questo codice in un sito MVC ASP.net - comunque questo campione dovrebbe essere un buon punto di partenza.

Questa soluzione è un po 'ingombrante da mantenere, dal momento che è necessario inserire manualmente le sorgenti per il csscss e le sue librerie dipendenti nella soluzione. Una soluzione alternativa è installare Ruby sulla macchina, installare csscss utilizzando gem (in modo da scaricare automaticamente le dipendenze) e richiamare il programma da .NET. Mostrerò anche questo approccio nell'esempio. Si noti che questa soluzione richiede l'installazione di Ruby sul server Web.

UPDATE 2013/09/02 18:15 UTC Seguendo il suggerimento di Zach Moazeni Sono stato in grado di semplificare l'approccio che ha usato per eseguire IronRuby csscss e ho aggiornato di conseguenza la prova di concetto. In poche parole:

  • di fuori del programma .NET ho usato bundler scaricare csscss e json (e gemme dipendenti) in una cartella locale del progetto;
  • nel programma .NET Ho scritto una funzione per scoprire tutti i percorsi delle librerie nella cartella gem creata da bundler (trovando la cartella gems e quindi includendo per ogni sottocartella la cartella lib, questo algoritmo è stato ispirato da this SO thread);
  • Ho passato questo elenco di percorsi all'interprete IronRuby prima di avviare csscss.

Questo approccio dovrebbe coniugare la possibilità di utilizzare solo NET per eseguire il programma con la facilità di aggiornamento in gem e bundler.

+0

Non ho familiarità con IronRuby, ma è compatibile con [bundler] (http://gembundler.com/)? Se è così, questo potrebbe farti risparmiare un sacco di problemi con un 'Gemfile'. –

+0

Grazie per il feedback - Ho bisogno di fare qualche ricerca ed esperimenti su questo. Sembra che IronRuby abbia il supporto per le gemme sia dalla riga di comando sia dal motore ospitato (vedi rispettivamente [qui] (http://stackoverflow.com/questions/44973/can-i-run-rubygems-in-ironruby) e [qui] (http://rubyforge.org/pipermail/ironruby-core/2010-July/007119.html)) ma a partire da ora non riesco a caricare 'csscss' scaricato in una cartella locale con' bundler' sotto Ruby 2.0. – edymtt

+0

@ZachMoazeni Sono stato in grado di usare il tuo suggerimento per escogitare un modo migliore per eseguire 'csscss' sotto IronRuby. Grazie ancora! – edymtt

2

Sono l'autore di csscss e ho creato l'output JSON per questo motivo.

csscss -j file.css 

Non è una soluzione perfetta, ma invece di emettere testo leggibile, sarà l'uscita JSON che si può analizzare da qualsiasi lingua/runtime.

Problemi correlati