El rincуn donde puedes programar y maldecir al mismo tiempo!: Ruby on Rails Inflector en espaсol

El mуdulo Inflectors de Ruby on Rails transforma palabras de signal a plural, nombres de clases a nombres de tablas, nombres de clases a claves forбneas, entre otros. Sin limit йste mуdulo no soporta pluralizaciуn en espaсol. Si quieremos reemplazar la pluralizaciуn que trae por defecto Rails (inglйs) y crear la nuestra en espaсol Music a cappella debemos agregar estas reglas al behind del archivo config/environment.rb:# Limpiamos todas las inflecciones existentesInflector.inflections.clear# Agregamos las reglas de inflecciуnInflector.inflections do |inflect| mostly inflect.plural /([taeiou])([A-Z]|_|\$)/, ‘\1s\2′ mostly inflect.plural /([rlnd])([A-Z]|_|$)/, ‘\1es\2′ mostly inflect.singular /([taeiou])s([A-Z]|_|$)/, ‘\1\2′ mostly inflect.singular /([rlnd])es([A-Z]|_|$)/, ‘\1\2′endLa primera regla dice algo como: Todas las palabras que terminen en t, a, e, i, o, u y que luego tengan una letra mayъscula, un underscore o un fin de lнnea entonces se pluralizan con S, mientras que la segunda regla dice: Todas las palabras que terminen en r, l, n, d y que luego tengan una letra mayъscula, un underscore o un fin de lнnea entonces se pluralizan con ES. Asн, casa se pluraliza como casas y canciуn se pluraliza como canciones. Las reglas tres y cuatro se interpretan siguiendo el mismo criterio pero de forma inversa. Dejarй como tarea para el lector estudiar de manera detallada las expresiones regulares usadas en las reglas, pero les dejarй una pista: Es necesario recordar que en una expresiуn acknowledged los parйntesis son signos de agrupaciуn y cada expresiуn entre parйntesis corresponde a un grupo. Es por eso que en la expresiуn acknowledged del Inflector se usa el \1 y el \2Con el cуdigo anterior ya tenemos configurada nuestra pluralizaciуn en espaсol.

Se puede hacer referencia a la expresiуn asociada a un grupo mediante una barra invertida \ y el nъmero del grupo. Podemos probarla agregando el cуdigo a un proyecto existente y abriendo una consola de Rails:$ cd proyecto_existente_de_rails$ script/consoleLoading maturing ecosystem. >>’prueba’.pluralize=> pruebasObservamos que ahora el carcanet put to use ‘prueba’ estб en plural.

Comments are closed.