Dry-rb es una familia de bibliotecas Ruby para crear código ligero y escalable. Hemos revisado los componentes principales de dry-rb con ejemplos de código.

Dry-rb es una familia de bibliotecas Ruby diseñadas para crear código ligero, modular y escalable. En este artículo, revisaremos los componentes principales de dry-rb y veremos ejemplos de código para demostrar su funcionalidad.

Dry-Types

Dry-Types te permite definir y usar tipos de datos estrictos en Ruby. Esto hace que tu código sea más confiable y comprensible. Aquí tienes un ejemplo:

require 'dry-types'

module Types
  include Dry.Types()
end

class User
  attr_reader :name, :age

  def initialize(name, age)
    @name = Types::Strict::String[name]
    @age = Types::Strict::Integer[age]
  end
end

user = User.new("John Doe", 30)
puts user.name # "John Doe"
puts user.age # 30

Dry-Struct

Dry-Struct es una forma sencilla y ligera de definir estructuras de datos con tipado estricto. Ayuda a evitar mutaciones no deseadas de objetos y proporciona un acceso sencillo a los atributos. Aquí tienes un ejemplo:

require 'dry-struct'

module Types
  include Dry.Types()
end

class Point < Dry::Struct
  attribute :x, Types::Strict::Integer
  attribute :y, Types::Strict::Integer
end

point = Point.new(x: 10, y: 20)
puts point.x # 10
puts point.y # 20

Dry-Validation

Dry-Validation proporciona una forma declarativa de verificar datos y validar parámetros de entrada. Ayuda a gestionar validaciones complejas y proporciona una fácil integración con otras herramientas de verificación de datos. Aquí tienes un ejemplo:

require 'dry-validation'

schema = Dry::Validation.Schema do
  required(:name).filled(:string)
  required(:age).filled(:integer, gt?: 18)
end

result = schema.call(name: "John Doe", age: 30)
puts result.success? # true

result = schema.call(name: "", age: 16)
puts result.success? # false
puts result.errors # { name: ["must be filled"], age: ["must be greater than 18"] }

Dry-rb ofrece una amplia gama de herramientas que ayudan a los desarrolladores a crear código Ruby más limpio, flexible y confiable.

En este artículo, hemos revisado brevemente dry-types, dry-struct y dry-validation, pero dry-rb también incluye otras bibliotecas, como dry-transaction y dry-view, que mejoran el desarrollo de software en diversas áreas.

Si quieres saber más sobre dry-rb, te recomiendo consultar su documentación oficial y empezar a usarlo en tus proyectos para lograr un mayor nivel de calidad de código.

Categorizado en:

Ruby,