• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Antonio Pérez

Full Stack developer

  • Home
  • Sobre mi
  • Podcast
  • Blog
  • Contacto
desarrollo full stack

Ruby 2.7 – Principales novedades

You are here: Home / Ruby / Ruby 2.7 – Principales novedades
14/01/2020 by apcano1978

Como cada navidad, desde el 25 de Diciembre tenemos disponible una nueva versión de Ruby. Matz y su cuadrilla nos han traído la que será la última major release de Ruby 2, dado que el año que viene ya tendremos Ruby 3.0!

Vamos a mostrar algunas de las nuevas características que incorpora esta nueva versión de Ruby, vamos a comenzar sin mas dilación.

Rangos sin inicio/fin

Ruby 2.7 ha introducido un nuevo atajo que nos permite definir rangos del tipo «todo lo que haya por debajo de..» o «todo lo que quede por encima de…» muy útil por ejemplo con fechas, como el siquiente ejemplo:

case release_date
when ..1.year.ago
  puts 'Unsupported version'
when 1.year.ago..3.months.ago
  puts 'Still supported'
when 3.months.ago..Time.now
  puts 'current version'
when Time.now..
  puts 'still not released'
end

Operador flip-flop

Vuelve el operador flip-flop en esta versión 2.7 de Ruby. El operador flip flop lo que nos permite es definir un rango en una sentencia condicional, vamos a ver un ejemplo que va a resultar bastante más ilustrativo

(1..10).each { |i| puts i if (i == 4) .. (i == 6) }

En este bloque de código el operador flip flop son los dos puntos que nos determinan un rango tras el if, la sentencia condicional. En este caso, este bloque de código, bastante inútil por otra parte, lo que hará será simplemente imprimir en pantalla el índice i, pero solamente cuando esté comprendido entre 4 y 6.

Array#intersection

Ahora disponemos también del método intersection para trabajar con objectos de tipo array. Veamos un ejemplo

[1,2,3,4,5,6,7].intersection([2,5,8])
=> [2,5]

Este método nos resulta muy útil para poder detectar elementos coincidentes entre dos arrays.

Enumerable#filter_map

Si lo que queremos es transformar un array y filtrar al mismo tiempo, hasta ahora lo hacíamos de esta manera, entre otras:

[1, 2, 3, 4, 5].select { |x| x.odd? }.map { |x| x.to_s }
=> ["1", "3", "5"]

Con esta línea de código seleccionamos los valores impares y los convertimos en string en lugar de integer. Ahora, en Ruby 2.7 tenemos el operador filter_map que nos permite hacerlo de la siguiente manera:

[1, 2, 3, 4, 5].filter_map {|x| x.odd? ? x.to_s : nil } 
=> ["1", "3", "5"

Enumerable#tally

Ahora podemos obtener el número de repeticiones de un elemento dentro de un array con este método, vamos a mostrar su funcionamiento con este ejemplo:

["developer", "designer", "designer", "developer", "cto", "lead developer"].tally
=> {"developer" => 2, "designer" => 2, "cto" => 1, "lead_developer" => 1}

Estas son algunas de las novedades que nos presenta esta nueva versión Ruby 2.7, hay muchas nuevas features experimentales también, si quieres más información te dejo el enlace a la release completa

Categoría: Desarrollo Back End, Ruby, Ruby on Rails

About apcano1978

Intento nadar entre frameworks, IDEs, SDKs… Algunos lo llaman Full stack developer, yo creo que es solo un eufemismo para decir «el que está en medio de todos los follones» Ruby on Rails y Angular … y bastante tengo …

Previous Post:desplegar un proyecto de rails con capistranoDesplegar un proyecto de Rails 6 con capistrano
Next Post:Charla codemotion Madrid 2019 angular y ReduxRedux con Angular en Codemotion Madrid 2019

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ahora también en youtube

Ve al canal

Copyright © 2023 · Antonio Pérez · All Rights Reserved · Powered by Mai Theme