Salut,
C'est moche ou pas de faire des trucs de ce genre (instance_eval sur le contenu d'un fichier)
Code :
- class Script
- def initialize
- @settings = {}
- end
- def set(k, v)
- @settings[k] = v
- end
- end
- class Manager
- def load!(file)
- s = Script.new
- s.instance_eval(IO.read(file))
- end
- 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 :
- # script1.rb
- set(:test, true)
- on(:event) do
- "test"
- 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.