2013-04-10 5 views
6

Je suis intéressé par l'utilisation d'un script ruby ​​(https://github.com/zmoazeni/csscss) avec un site ASPNET MVC. Je n'ai aucune expérience avec Ruby alors ma question pourrait être naïve.peut être installé puis utilisé dans une vanille VS2012

Est-il possible d'importer le paquet ironruby nuget et d'exécuter les scripts ruby?

Mon but serait de mettre un wrapper .net autour du (des) script (s) ruby ​​et de mettre la sortie au format HTML.


Jusqu'à présent, j'ai essayé googler mise en route avec IronRuby mais n'ont pas trouvé beaucoup que je comprends et pourrait faire fonctionner, (oui que le son vague, mais je ne sais pas rubis ou IronRuby et n'a pas pu trouver de bons guides simples pour commencer).

+0

[Qu'avez-vous essayé?] (Http: // mattgemmell.com/2008/12/08/quoi-avez-vous-essayé /) –

Répondre

3

J'ai réalisé une preuve de concept simple à https://github.com/edymtt/csscss-from-ironruby qui montre dans une application console comment utiliser IronRuby pour exécuter le code source de csscss pour analyser un CSS chargé à partir d'un fichier. Pour atteindre ce résultat, j'ai commencé à partir de ce SO question - vous pouvez trouver les ressources supplémentaires que j'ai utilisées dans les commentaires du programme. Je n'ai pas essayé ce code dans un site ASP.net MVC - de toute façon cet exemple devrait être un bon point de départ.

Cette solution est un peu lourde à gérer, car vous devez placer manuellement les sources du csscss et de ses bibliothèques dépendantes dans la solution. Une solution alternative est d'installer Ruby sur la machine, installez csscss en utilisant gem (donc téléchargez les dépendances automatiquement) et d'invoquer le programme de .NET - Je vais aussi montrer cette approche dans l'exemple. Notez que cette solution nécessite que vous puissiez installer Ruby sur le serveur Web.

MISE A JOUR 02/09/2013 18:15 UTC Suite à la suggestion de Zach Moazeni Je suis en mesure de semplify l'approche utilisée IronRuby pour exécuter csscss et je l'ai mis à jour en conséquence la preuve de concept. En un mot:

  • en dehors du programme .NET Je l'ai utilisé pour télécharger Bundler csscss et json (et des pierres précieuses dépendantes) dans un dossier local du projet;
  • J'ai écrit une fonction pour découvrir tous les chemins des bibliothèques dans le dossier gem créé par bundler (en trouvant le dossier gems puis en incluant pour chaque sous-dossier le dossier lib, cet algoritm a été inspiré par this SO thread);
  • J'ai transmis cette liste de chemins à l'interpréteur IronRuby avant de lancer csscss.

Cette approche devrait conjuguer la capacité d'utiliser uniquement .NET pour exécuter le programme avec la facilité de la mise à jour donnée par gem et bundler.

+0

Je ne suis pas familier avec IronRuby, mais est-il compatible avec [bundler] (http://gembundler.com/)? Si c'est le cas, cela peut vous épargner beaucoup de problèmes avec un 'Gemfile'. –

+0

Merci pour les commentaires - j'ai besoin de faire des recherches et des expériences à ce sujet. Il semble que IronRuby supporte les gemmes à la fois en ligne de commande et en moteur hébergé (voir respectivement [ici] (http://stackoverflow.com/questions/44973/can-i-run-rubygems-in-ironruby) et [ici] (http://rubyforge.org/pipermail/ironruby-core/2010-July/007119.html)) mais à partir de maintenant, je suis incapable de charger 'csscss' téléchargé dans un dossier local avec' bundler' sous Ruby 2.0. – edymtt

+0

@ZachMoazeni J'ai été en mesure d'utiliser votre suggestion pour trouver une meilleure façon d'exécuter 'csscss' sous IronRuby. Merci encore! – edymtt

2

Je suis l'auteur de csscss et j'ai construit la sortie JSON pour cette raison.

csscss -j file.css 

Ce n'est pas une solution parfaite, mais au lieu de produire du texte lisible par l'homme, il JSON que vous pouvez analyser de quelle langue/exécution.

Questions connexes