Módulo: Mongoid::Criteria::Queryable::Selectable
- Ampliado por:
- Macroable
- Definido en:
- lib/mongoid/criteria/queryable/selectable.rb
Overview
Un seleccionable consultable es seleccionable, en el sentido de que tiene la capacidad de seleccionar documentos de la base de datos. El módulo seleccionable lleva toda la funcionalidad al elemento seleccionable que tiene que ver con la creación de selectores MongoDB.
Resumen de constantes colapsar
- LINE_STRING =
Constante para una geometría LineString.
'LineString'- punto =
Constante para una geometría de Punto ($geometry).
'punto'- polígono =
Constante para una $geometry Polígono.
'polígono'
Resumen de atributos de la instancia colapsar
-
#negando ⇒ Objeto
Devuelve el valor del atributo negando.
- #Negando si la siguiente expresión está negada.(Ifthe) ⇒ Object
-
#selector ⇒ Objeto
Devuelve el valor del selector del atributo.
- #selector El selector de query.(El selector de query.) ⇒ Objeto
Resumen del método de clase colapsar
-
.transmitibles ⇒ Array<Symbol>
Obtén los métodos en el elemento seleccionable a los que se puede remitir desde un modelo.
Resumen del método de instancia colapsar
-
#todos(*criterio) ⇒ Seleccionable (también: #todos_en)
Agrega el criterio $all.
-
#and(*criterios) ⇒ Seleccionable (también: #all_of)
Agrega el criterio $and.
-
#any_of(*criteria) ⇒ Selectable
Agrega una disyunción de los argumentos como una restricción adicional a los criterios ya existentes en el receptor.
-
#entre(criterio) ⇒ Seleccionable
Agrega la selección de rango.
-
#elem_match(criterio) ⇒ Seleccionable
Selecciona con un $elemMatch.
-
#eq(criterion) ⇒ Seleccionable
Agregue el criterio $eq al selector.
-
#existe(criterio) ⇒ Seleccionable
Agregue la selección $exists.
-
#expr_query(criterio) ⇒ Selectable
privado
Agrega la expresión especificada a la query.
-
#geo_espacial(criterio) ⇒ Seleccionable
Añada una selección $geoIntersects o $geoWithin.
-
#gt(criterion) ⇒ Seleccionable
Agregar el criterio $gt al selector.
-
#gte(criterio) ⇒ Seleccionable
Agrega el criterio $gte al selector.
-
#in(condition) ⇒ Selectable (también: #any_in)
Agrega la selección $in a la seleccionable.
-
#js_query(criterion) ⇒ Seleccionable
privado
Crear una selección de JavaScript.
-
#lt(criterio) ⇒ Seleccionable
Agrega el criterio $lt al selector.
-
#lte(criterio) ⇒ Seleccionable
Agregue el criterio $lte al selector.
-
#max_distance(criterio) ⇒ Seleccionable
Agrega una selección $maxDistance al seleccionable.
-
#mod(criterio) ⇒ Seleccionable
Agrega la selección $mod al elemento seleccionable.
-
#ne(criterio) ⇒ Seleccionable (también: #excluye)
Agrega la selección $ne a las opciones seleccionables.
-
#near(criterio) ⇒ Selectable
Añade un criterio $near a una selección geográfica.
-
#near_sphere(criterio) ⇒ Seleccionable
Agrega un criterio $nearSphere a una selección geográfica.
-
#negando? ⇒ verdadero | falso
¿El elemento seleccionable actual niega la siguiente selección?
-
#nin(condición) ⇒ Seleccionable (también: #not_in)
Agrega la selección $nin al elemento seleccionable.
-
#none_of(*criteria) ⇒ Seleccionable
Negar los argumentos, limitando la query solo a aquellos documentos que NO coincidan con los argumentos.
-
#nor(*criterios) ⇒ Seleccionable
Agrega la selección $nor a los seleccionables.
-
#not(*criteria) ⇒ Seleccionable
Negar los argumentos o la siguiente selección si no se dan argumentos.
-
#o(*criterio) ⇒ Seleccionable
Crea una disyunción utilizando $or a partir de los criterios existentes en el receptor y los argumentos proporcionados.
-
#text_search(terms, opts = nil) ⇒ Seleccionable
Construya un selector de búsqueda de texto.
-
#where(*criteria) ⇒ Selectable
Este es el punto de acceso general para la mayoría de las consultas de MongoDB.
-
#con_tamaño(criterio) ⇒ Seleccionable
Agregar una selección de $size para los campos de arreglo.
-
#with_type(criterio) ⇒ Selectable
Agrega una selección de $type a lo seleccionable.
Métodos incluidos de Macroable
Detalles de atributo de instancias
#negando ⇒ objeto
Devuelve el valor del atributo negando.
23 24 25 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 23 def negar @negando end |
#negación Si la siguiente expresión está negada.(Ifthe) ⇒ objeto
23 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 23 attr_accessor :negando, Selector: |
#selector ⇒ Objeto
Devuelve el valor del selector del atributo.
23 24 25 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 23 def selector @selector end |
#selector El selector de query.(El selector de query.) ⇒ objeto
23 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 23 attr_accessor :negando, Selector: |
Detalles del método de clase
.forwardables ⇒ arreglo<Symbol>
Obtén los métodos en el elemento seleccionable a los que se puede remitir desde un modelo.
883 884 885 886 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 883 def reenviables public_instance_methods(false) - %i[negar negando= ¿Negar? selector SELECTOR =] end |
Detalles del método de instancia
#all(*criteria) ⇒ Seleccionable También conocido como: all_in
Agrega el criterio $all.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 36 def Todo(*criterios) si criterios.¿vacío? return clonar.tocar hacer |Consulta| Consulta.reset_strategies! end end criterios.inyectar(clonar) hacer |Consulta, condición| propagar Errors::CriteriaArgumentRequired, todo si condición.nil? condición = (condición) si estrategia enviar(estrategia, condición, '$all') else condición.inyectar(Consulta) hacer |query, (Campo, Valor)| v = { '$all' => Valor } v = { '$not' => v } si ¿Negar? query.add_field_expression(Campo.to_s, v) end end end.reset_strategies! end |
#y(*criterios) ⇒ Selectable También conocido como: all_of
Agrega el criterio $and.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 72 def y (*criterios) _mongoid_flatten_arrays(criterios).inyectar(clonar) hacer |C, nueva| nueva = nueva.selector si nueva.is_a?(Seleccionable) normalizado = (nueva) normalizado.cada hacer |k, v| k = k.to_s si C.selector[k] # Ya existe una condición sobre k. # Si v es un operador y todas las condiciones existentes son # también los operadores, y v no está presente en las condiciones existentes, # podemos añadir a las condiciones existentes. # De lo contrario, use $and. si v.is_a?(encriptada) && v.longitud == 1 && (nuevo_k = v.claves.primero).start_with?('$') && (existing_kv = C.selector[k]).is_a?(encriptada) && !existing_kv.key?(nuevo_k) && existing_kv.claves.¿todos? { |sub_k| sub_k.start_with?('$') } merged_v = C.selector[k].fusionar(v) C.selector.store(k, merged_v) else C = C.enviar(:__multi__, [ { k => v } ], '$and') end else C.selector.store(k, v) end end C end end |
#any_of(*criteria) ⇒ Selectable
Agrega una disyunción de los argumentos como una restricción adicional a los criterios ya existentes en el receptor.
Utiliza or para hacer que el receptor sea uno de los operanlos de disyunción.
Cada argumento puede ser un Hash, un objeto Criteria, un arreglo de Hash o de objetos Criteria, o un arreglo anidado. Los arreglos anidados se aplanarán y pueden tener cualquier profundidad. El traspaso de arreglos está obsoleto.
625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 625 def any_of(*criterios) criterios = _mongoid_flatten_arrays(criterios) caso criterios.longitud cuando 0 clonar cuando 1 # Cuando tenemos un solo criterio, any_of se comporta como and. # Nota: los criterios pueden ser un objeto query, que #where hace # no soporte. sí mismo.y (*criterios) else # Cuando tenemos varios criterios, los combinamos todos con $or # y añade el resultado a sí mismo. expresiones = criterios.map hacer |criterion| si criterion.is_a?(Seleccionable) (criterion.selector) else encriptada[criterion.map hacer |k, v| si k.is_a?(Símbolo) [ k.to_s, v ] else [ k, v ] end end] end end sí mismo.y ('$or' => expresiones) end end |
#between(criterio) ⇒ Seleccionable
Agrega la selección de rango.
115 116 117 118 119 120 121 122 123 124 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 115 def entre(criterion) propagar Errors::CriteriaArgumentRequired, Entre si criterion.nil? Selección(criterion) hacer |selector, Campo, Valor| selector.store( Campo, { '$gte' => Valor.min, '$lte' => Valor.máximo } ) end end |
#elem_match(criterio) ⇒ Seleccionable
Selecciona con un $elemMatch.
143 144 145 146 147 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 143 def elem_match(criterion) propagar Errors::CriteriaArgumentRequired, elem_match si criterion.nil? y_with_operator(criterion, '$elemMatch') end |
#eq(criterio) ⇒ Selectable
Agregue el criterio $eq al selector.
240 241 242 243 244 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 240 def eq(criterion) propagar Errors::CriteriaArgumentRequired, :eq si criterion.nil? y_with_operator(criterion, '$eq') end |
#exists(criterion) ⇒ Seleccionable
Agregue la selección $exists.
164 165 166 167 168 169 170 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 164 def exists(criterion) propagar Errors::CriteriaArgumentRequired, existe si criterion.nil? typed_override(criterion, '$exists') hacer |Valor| Mongoid::Booleano.evolucionar(Valor) end end |
#expr_query(criterio) ⇒ Seleccionable
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Agrega la expresión especificada a la query.
El criterio debe ser un hash en una de las siguientes formas:
- Valor
- => valor
- Valor
- => expresión_de_valor_operador
El nombre del campo y el operador pueden proporcionarse como cadenas o símbolos.
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 795 def expr_query(criterion) propagar ArgumentError, 'El criterio no puede estar vacío aquí' si criterion.nil? a menos que criterion.is_a?(encriptada) propagar Errors::Consulta no válida, "La expresión debe ser un Hash: #{Errores::InvalidQuery.truncate_expr(criterion)}" end normalizado = (criterion) clonar.tocar hacer |Consulta| normalizado.cada hacer |Campo, Valor| field_s = Campo.to_s si field_s.start_with?('$') # Operador a nivel de expresión de query, como $and o $where Consulta.add_operator_expression(field_s, Valor) else Consulta.add_field_expression(Campo, Valor) end end Consulta.reset_strategies! end end |
#geo_spatial(criterio) ⇒ Seleccionable
Las únicas formas geométricas válidas para un $geoIntersects son::intersects_line, :intersects_point y :intersects_polygon.
Las únicas opciones válidas para una consulta $geoWithin query son la forma geométrica :within_polygon y el operador :within_box.
El operador :within_box para la query $geoWithin espera el par de coordenadas inferiores izquierdas (suroeste) como el primer argumento y las superiores derechas (noreste) como el segundo argumento. Importante: cuando se pasan la latitud y la longitud, se espera que la longitud sea el primer elemento del par de coordenadas. Fuente: https://www.mongodb.com/es/docs/manual/reference/operator/query/box/
Agrega una selección $geoIntersects o $geoWithin. Los operadores de símbolos deben utilizarse como se muestra en los ejemplos para ampliar los criterios.
209 210 211 212 213 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 209 def geo_spatial(criterion) propagar Errors::CriteriaArgumentRequired, geo_spatial si criterion.nil? __merge__(criterion) end |
#gt(criterio) ⇒ Seleccionable
Agregar el criterio $gt al selector.
258 259 260 261 262 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 258 def gt(criterion) propagar Errors::CriteriaArgumentRequired, :gt si criterion.nil? y_with_operator(criterion, '$gt') end |
#gte(criterio) ⇒ Selectable
Agrega el criterio $gte al selector.
276 277 278 279 280 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 276 def gte(criterion) propagar Errors::CriteriaArgumentRequired, :gte si criterion.nil? y_with_operator(criterion, '$gte') end |
#en(condición) ⇒ Seleccionable También conocido como: cualquiera_en
Agrega la selección $in a la seleccionable.
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 297 def in(condición) propagar Errors::CriteriaArgumentRequired, :en si condición.nil? condición = (condición) si estrategia enviar(estrategia, condición, '$in') else condición.inyectar(clonar) hacer |Consulta, (Campo, Valor)| v = { '$in' => Valor } v = { '$not' => v } si ¿Negar? Consulta.add_field_expression(Campo.to_s, v) end.reset_strategies! end end |
#js_query(criterio) ⇒ Seleccionable
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Crear una selección de JavaScript.
826 827 828 829 830 831 832 833 834 835 836 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 826 def js_query(criterion) clonar.tocar hacer |Consulta| si ¿Negar? Consulta.add_operator_expression('$and', [ { '$nor' => [ { '$where' => criterion } ] } ]) else Consulta.add_operator_expression('$where', criterion) end Consulta.reset_strategies! end end |
#lt(criterio) ⇒ Seleccionable
Agrega el criterio $lt al selector.
326 327 328 329 330 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 326 def lt(criterion) propagar Errors::CriteriaArgumentRequired, :lt si criterion.nil? y_with_operator(criterion, '$lt') end |
#lte(criterio) ⇒ Seleccionable
Agregue el criterio $lte al selector.
344 345 346 347 348 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 344 def lte(criterion) propagar Errors::CriteriaArgumentRequired, :lte si criterion.nil? y_with_operator(criterion, '$lte') end |
#max_distance(criterio) ⇒ Seleccionable
Agrega una selección $maxDistance al seleccionable.
359 360 361 362 363 364 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 359 def max_distance(criterion) propagar Errors::CriteriaArgumentRequired, distancia máxima si criterion.nil? # $maxDistance debe darse junto con $near __add__(criterion, '$maxDistance') end |
#mod(criterio) ⇒ Seleccionable
Agrega la selección $mod al elemento seleccionable.
377 378 379 380 381 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 377 def mod(criterion) propagar Errors::CriteriaArgumentRequired, :mod si criterion.nil? y_with_operator(criterion, '$mod') end |
#no es igual(criterio) ⇒ Seleccionable También conocido como: excluye
Agrega la selección $ne a las opciones seleccionables.
395 396 397 398 399 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 395 def ne(criterion) propagar Errors::CriteriaArgumentRequired, :ne si criterion.nil? y_with_operator(criterion, '$ne') end |
#near(criterion) ⇒ Los elementos seleccionables
Añade un criterio $near a una selección geográfica.
414 415 416 417 418 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 414 def near(criterion) propagar Errors::CriteriaArgumentRequired, cerca de si criterion.nil? y_with_operator(criterion, '$near') end |
#near_sphere(criterio) ⇒ Seleccionable
Agrega un criterio $nearSphere a una selección geográfica.
432 433 434 435 436 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 432 def near_sphere(criterion) propagar Errors::CriteriaArgumentRequired, :near_sphere si criterion.nil? y_with_operator(criterion, '$nearSphere') end |
#¿negando? ⇒ true | false
¿El elemento seleccionable actual está negando la siguiente selección?
490 491 492 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 490 def ¿Negar? !!negar end |
#nin(condición) ⇒ Selectable También conocido como: not_in
Agrega la selección $nin al elemento seleccionable.
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 453 def nin(condición) propagar Errors::CriteriaArgumentRequired, :nin si condición.nil? condición = (condición) si estrategia enviar(estrategia, condición, '$nin') else condición.inyectar(clonar) hacer |Consulta, (Campo, Valor)| v = { '$nin' => Valor } v = { '$not' => v } si ¿Negar? Consulta.add_field_expression(Campo.to_s, v) end.reset_strategies! end end |
#none_of(*criteria) ⇒ Selectable
Negar los argumentos, limitando la query solo a aquellos documentos que NO coincidan con los argumentos.
552 553 554 555 556 557 558 559 560 561 562 563 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 552 def none_of(*criterios) criterios = _mongoid_flatten_arrays(criterios) return dup si criterios.¿vacío? expresiones = criterios.map hacer |criterion| ( criterion.is_a?(Seleccionable) ? criterion.selector : criterion ) end sí mismo.y ('$nor' => expresiones) end |
#nor(*criterios) ⇒ Seleccionable
Agrega la selección $nor a los seleccionables.
480 481 482 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 480 def ni(*criterios) _mongoid_add_top_level_operation('$nor', criterios) end |
#not(*criteria) ⇒ Seleccionable
Negar los argumentos o la siguiente selección si no se dan argumentos.
509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 509 def no(*criterios) si criterios.¿vacío? dup.tocar { |Consulta| Consulta.negar = !Consulta.negar } else criterios.compact.inyectar(clonar) hacer |C, nueva| nueva = nueva.selector si nueva.is_a?(Seleccionable) (nueva).cada hacer |k, v| k = k.to_s si C.selector[k] || k.start_with?('$') C = C.enviar(:__multi__, [ { '$nor' => [ { k => v } ] } ], '$and') elsif v.is_a?(encriptada) C = C.enviar(:__multi__, [ { '$nor' => [ { k => v } ] } ], '$and') else operador_negado = si v.is_a?(Regexp) '$not' else '$ne' end C = C.enviar(:__override__, { k => v }, operador_negado) end end C end end end |
#o(*criterio) ⇒ Seleccionable
Crea una disyunción utilizando $or a partir de los criterios existentes en el receptor y los argumentos proporcionados.
Este comportamiento (el receptor se convierte en uno de los operandos de la disyunción) coincide con el comportamiento or de ActiveRecord.
Use any_of para agregar una disyunción de los argumentos como una restricción adicional a los criterios ya existentes en el receptor.
Cada argumento puede ser un Hash, un objeto Criteria, un arreglo de Hash o de objetos Criteria, o un arreglo anidado. Los arreglos anidados se aplanarán y pueden tener cualquier profundidad. El traspaso de arreglos está obsoleto.
595 596 597 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 595 def or(*criterios) _mongoid_add_top_level_operation('$or', criterios) end |
#text_search(términos, opts = nil) ⇒ Selectable
Por https://www.mongodb.com/es/docs/manual/reference/operator/query/text/ actualmente no es posible proporcionar múltiples condiciones de búsqueda de texto en una query. Mongoid construirá dicha query, pero el servidor devolverá un error al intentar ejecutarla.
Construya un selector de búsqueda de texto.
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 723 def text_search(término, opciones = nulo) propagar Errors::CriteriaArgumentRequired, término si término.nil? clonar.tocar hacer |Consulta| criterion = { '$text' => { '$search' => término } } criterion['$text'].¡Actualizar!(opciones) si opciones si Consulta.selector['$text'] # Según https://www.mongodb.com/es/docs/manual/reference/operator/query/text/ # actualmente no se admiten múltiples expresiones $text # Servidor MongoDB, pero construye la query correctamente en lugar de # sobrescribiendo la condición de búsqueda de texto anterior con la actual # dado uno. Mongoid.logger.advertencia('El servidor actualmente no admite múltiples expresiones $text por query') Consulta.selector = { '$and' => [ Consulta.selector ] }.fusionar(criterion) else Consulta.selector = Consulta.selector.fusionar(criterion) end end end |
#donde(*criterios) ⇒ Seleccionable
Este es el punto de entrada general para la mayoría de las consultas de MongoDB. Esto crea un campo estándar: selección de valor y selección ampliada con el uso de métodos hash, o una selección $where si se proporciona una string.
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 757 def dónde(*criterios) return clonar.reset_strategies! si criterios.¿vacío? criterios.inyectar(sí mismo) hacer |Consulta, criterion| propagar Errors::CriteriaArgumentRequired, dónde si criterion.nil? # Necesitamos guardar el criterio en una variable de instancia, así que # Los métodos modificables saben cómo crear un objeto polimorfo. # Tenga en cuenta que este método, en principio, acepta múltiples criterios, # pero solo el primero se almacenará en @criterion. Esto # resulta ser adecuado porque los métodos 555first_or_create555, etc. # especifica sólo un criterio para #where. @criterion = criterion si criterion.is_a?(String) Consulta.js_query(criterion) else Consulta.expr_query(criterion) end end end |
#with_size(criterio) ⇒ Seleccionable
Este método se llama #with_size para no entrar en conflicto con ningún método #size existente en contenedores o símbolos.
Agregar una selección de $size para los campos de arreglo.
669 670 671 672 673 674 675 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 669 def con el tamaño(criterion) propagar Errors::CriteriaArgumentRequired, con tamaño si criterion.nil? typed_override(criterion, '$tamaño') hacer |Valor| ::entero.evolucionar(Valor) end end |
#with_type(criterio) ⇒ Seleccionable
http://vurl.me/PGOU contiene una lista de todos los tipos.
Agrega una selección de $type a lo seleccionable.
693 694 695 696 697 698 699 |
# Archivo 'lib/mongoid/criteria/queryable/selectable.rb', línea 693 def con tipo(criterion) propagar Errors::CriteriaArgumentRequired, con_tipo si criterion.nil? typed_override(criterion, '$type') hacer |Valor| ::entero.evolucionar(Valor) end end |