Je cherche un exemple simple de la façon d'écrire un DSL interne en utilisant des motifs Ruby et regex. Semblable à la façon dont les itinéraires poignées SinatraComment écrire un langage interne, naturel, DSL en utilisant Ruby + Regex?
get '/say/*/to/*' do
# Some Ruby code here
end
également similaire au traitement par concombre Définitions étape:
Given /^I have (\d+) cucumbers in my belly$/ do |cukes|
# Some Ruby code here
end
Je ne suis pas intéressé par les constructeurs, ou de méthodes enchaînées couramment. Fondamentalement, je veux une classe Ruby qui ressemble à ceci:
class SpecVocabulary
match ‘pattern’ do
# Some Ruby code here
end
# Or, using a different keyword
phrase ‘pattern’ do
# Some Ruby code here
end
end
Ce que je suis aux prises avec le câblage est-le code qui rend la classe SpecVocabular correspondent automatiquement les modèles et remplir ses données. J'espère que quelqu'un a un exemple simple de comment faire ceci, j'essaye d'éviter d'avoir à plonger dans la source pour Sinatra et le concombre. Par ailleurs, j'ai déjà défini le langage naturel, bien que je l'aie omis volontairement.