# Ruby

> Captura el tráfico HTTP/HTTPS de scripts y servidores de Ruby con Proxyman Automatic Setup. Funciona con http, net/http, net/https, httparty y faraday.

## 1. Nueva solución automática (v4.7.0 o posterior) ✅ {#1-new-automatic-solution-v470-or-later-}

Proxyman v4.7.0 o posterior puede capturar el tráfico HTTP/HTTPS de Ruby con un solo clic.

* Solución de un solo clic: no necesitas configurar el proxy HTTP ni confiar manualmente en el certificado autofirmado.
* Compatible con muchas librerías de Ruby: http, net/http, net/https, httparty y faraday.

### Cómo usarlo: {#how-to-use}

1. Abre Proxyman -> Setup Menu -> Automatic Setup
2. Haz clic en "Open New Terminal"
3. Acepta la solicitud de permiso de AppleScript si aparece
4. Se abre una nueva ventana de Terminal -> inicia tu servidor backend de Ruby o ejecuta tus scripts ahí => Proxyman captura todo el tráfico automáticamente.
5. Listo ✅

![Ventana de Proxyman Automatic Setup con el botón Open New Terminal que captura librerías de Ruby como net/http](https://proxyman.com/docs/assets/proxyman-automatic-setup-window.jpg)

_Captura el tráfico de Ruby_

## 2. Solución antigua (no recomendada) {#2-old-solution-not-recommended}

### 1. Configura el HTTP Proxy en Ruby {#1-set-http-proxy-to-ruby}

Net::HTTP usa automáticamente el proxy de la variable de entorno `http_proxy`, si está definida. 

Por tanto, puedes usar:

```bash
ENV['http_proxy'] = 'http://127.0.0.1:9090' # your http://address:port here
```

y Net::HTTP lo usará de forma predeterminada en todas las solicitudes.

Referencia: [https://stackoverflow.com/questions/15792999/how-to-set-a-proxy-in-rubys-net-http](https://stackoverflow.com/questions/15792999/how-to-set-a-proxy-in-rubys-net-http)

### 2. Instala el certificado de Proxyman en Ruby {#2-install-proxyman-certificate-on-ruby}

De forma predeterminada, **Ruby** en macOS puede no confiar en el certificado autofirmado de Proxyman. Por eso, es posible que obtengas un error de SSL al interceptar tráfico HTTPS.

Puedes indicar a Ruby que use el Proxyman Certificate con la variable de entorno `SSL_CERT_FILE`.

```bash
$ env SSL_CERT_FILE=~/.proxyman/proxyman-ca.pem ruby my_script.rb
```

> **Nota:** Las versiones más recientes de Proxyman guardan el certificado en `~/Library/Application Support/com.proxyman.NSProxy/app-data/proxyman-ca.pem`. Si `~/.proxyman/proxyman-ca.pem` no existe en tu Mac, usa esa ruta en su lugar, o exporta el certificado desde el menú Certificate -> Export -> Root Certificate as PEM.

## Más información {#learn-more}

* [Captura solicitudes HTTP/HTTPS de scripts de Ruby (net::http o la gema http)](https://proxyman.com/posts/2023-05-09-Capture-HTTP-HTTPS-Request-Response-From-Ruby-Net-HTTP-library)
* [Captura el tráfico HTTP/HTTPS de Ruby con Proxyman](https://proxyman.com/ruby) (sitio web de Proxyman)
