Scripting, DSL

Scripting, DSL - Ruby/Rails - Programmation

Marsh Posté le 16-10-2013 à 05:21:37    

Salut,
 
C'est moche ou pas de faire des trucs de ce genre (instance_eval sur le contenu d'un fichier)

Code :
  1. class Script
  2.   def initialize
  3.     @settings = {}
  4.   end
  5.   def set(k, v)
  6.     @settings[k] = v
  7.   end
  8. end
  9. class Manager
  10.   def load!(file)
  11.     s = Script.new
  12.     s.instance_eval(IO.read(file))
  13.   end
  14. end


Je souhaiterai que les scripts soient écris en invoquant seulement des méthodes, blocks.
Je veux pas hériter d'une classe ou inclure un module de base pour les scripts.
J'ai découvert les DSL ca à l'air d'être ce que je recherche mais j'arrive pas à comprendre comment stocker les  
"@settings" ici dans l'exemple pour chaque script.
 
une fois le script chargé avec "load" comment faire pour savoir à partir de quel script est appelée la méthode "set"?
 

Code :
  1. # script1.rb
  2. set(:test, true)
  3. on(:event) do
  4.   "test"
  5. end


pour le moment j'utilise instance_eval sur une classe de base qui me permet de stocker et accéder aux objets facilement,
ça marche bien mais si vous avez de meilleures solutions.  :jap:

Reply

Marsh Posté le 16-10-2013 à 05:21:37   

Reply

Marsh Posté le 17-10-2013 à 07:31:02    

Un peu d'aide svp, j'avance pas. :bounce:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed