2012-02-28 4 views
-1

J'ai un tableau de chaînes qui sont censées être utilisées comme contraintes lors de la création d'une nouvelle classe.Le meilleur moyen d'extraire les informations pertinentes de String?

Ils ressemblent à ceci:

constraint :name, 'name.size > 0' 
constraint :name, 'name =~ /^[A-Z]/' 

Et sont, comme vous pouvez le voir, composé de « nom » qui va être un attribut (et aura des méthodes pour/setter les valeurs qui lui sont)

la contrainte elle-même sont des rubis booléens valides.

Quelle est la meilleure façon d'obtenir les informations nécessaires à partir de ces chaînes, et de les implémenter dans les méthodes?

A partir de maintenant je suis en train de couper la chaîne, quelque chose comme ceci:

y = String.index("'") 
x = String.length 
newstr = String[x,y] 

et ainsi de suite, mais cela se sent vraiment comme je le fais plus difficile qu'il est ..

+0

vous devez regarder les capacités métaprogrammation. –

+1

Vous devriez accepter quelques réponses. Cela incite davantage les gens à répondre à vos questions. –

+0

Désolé, je suis vraiment nouveau à ce sujet. Les deux Ruby et stackoverflow .. – BSG

Répondre

0

Essayez la méthode Split. Si vous ne souhaitez que les informations après la 'utiliser comme ceci:

username = "abcd'hijk"  => "abcd'hijk" 
username.split("'").last => "hijk" 
+0

Mais je vais toujours avoir à obtenir les positions d'index pour le faire ..? – BSG

+0

J'ai ajouté un exemple pour le rendre plus facile à comprendre. Faites-moi savoir si cela n'aide pas. – Josh

+0

Ah, 'last' .. Merci beaucoup. :) – BSG

0

Différentes façons

a = "abcd'hijk" 

a.split("'").last #=> hijk 

a[a.index("'")+1 .. -1] #=> hijk 

a =~ /'(.+)$/ 
puts $1 #=> hijk 
Questions connexes