Skip to content

Instantly share code, notes, and snippets.

View javierav's full-sized avatar
😎

Javier Aranda javierav

😎
View GitHub Profile
@javierav
javierav / rails-testing.md
Created August 17, 2020 07:28
Cómo testear nuestra aplicación

Si has tenido la enorme suerte de trabajar en un proyecto en el que se usa Rails de la manera tradicional (dónde las páginas HTML se renderizan en el servidor y la carga de Javascript es la mínima indispensable), aquí tienes una breve guía de cómo debes testear tu aplicación para conseguir una cobertura y velocidad de ejecución óptimas.

Tipos de tests

Todas las aplicaciones que realicemos deberán implementar los siguientes tests (siempre que sea posible):

Tests unitarios

Es la única parte que no cambia respecto a lo que ya veníamos haciendo. Deberemos testear de forma unitaria los modelos, los jobs, las policies y las clases propias usando la forma habitual.

@javierav
javierav / rails-i18n.md
Created August 17, 2020 07:27
Cómo organizar las traducciones

En nuestras aplicaciones web solemos tener diferentes tipos de textos que deben ser traducidos a la hora de generar el HTML de nuestra página en función del idioma del usuario. Para realizar esta labor, Rails incorpora un sistema de I18n.

En esta breve guía aprenderemos a configurar el sistema de internacionalización y a cómo organizar en diferentes archivos y jerarquía nuestras traducciones para que sean fácilmente localizables.

Configuración

Dado que la configuración de un idioma, por norma general no afecta a un determinado entorno, realizaremos toda la configuración en el archivo config/application.rb.

Idioma por defecto

@javierav
javierav / postgre.md
Created August 17, 2020 07:26
Instalación y configuración de PostgreSQL

Instalación

Para poder trabajar con PostgreSQL lo primero que tenemos que hacer es instalarlo en nuestro entorno si todavía no lo tenemos instalado.

asdf

Es la opción recomentada ya que permite gestionar varias versiones de forma facil !!

Si ya tenemos postgres se recomienda desistalarlo antes de seguir

En esta guía vamos a aprender a utilizar las migraciones de Ruby on Rails, la parte que nos permite definir y actualizar el esquema de la base de datos PostgreSQL de nuestro proyecto.

Introducción

Una de las principales diferencias entre una base de datos no relacional como MongoDB y otra relacional como PostgreSQL es que mientras que en la primera cada documento de una misma colección puede tener una estructura diferente de campos, en la segunda es necesario informar a la base de datos de que campos vamos a tener en cada tabla antes de realizar cualquier operación de inserción.

Cuando definimos el esquema de los datos que vamos a usar podemos hacerlo de varias formas:

  • Operando directamente la base de datos desde su consola de administración.
  • Creando un archivo SQL con la definición.
@javierav
javierav / rails-ujs.md
Created August 17, 2020 07:22
Introducción a Rails UJS

Bienvenido a la guía sobre el Unobtrusive Javascript que nos proporciona Rails. En esta guía aprenderemos las posibilidades que nos brinda esta librería y cómo podemos usarla en nuestros proyectos para darle dinamismo a nuestra aplicación sin escribir ni una sóla línea de código Javascript.

Instalación

Para poder usar la librería tenemos que añadirla como dependencia a nuestro proyecto.

yarn add @rails/ujs
@javierav
javierav / mr.md
Created August 17, 2020 07:21
Etiquetado de los Merge Requests

En Gitlab podemos definir etiquetas para luego ser aplicadas a los merge requests. Sirva este documento como propuesta inicial para debatir su uso en todos los proyectos corporativos.

Etiquetas de acción requerida

Estas etiquetas sirven para indicar que ese merge necesita algún tipo de acción por parte de uno de los intervinientes: desarrolladores, maquetadores, etc.

|   | COLOR | DESCRIPCIÓN |

@javierav
javierav / turbolinks.md
Created August 17, 2020 07:20
Introducción a Turbolinks
@javierav
javierav / api-curl.md
Created August 17, 2020 07:19
Prueba tu API con cURL

Bienvenido a esta breve guía sobre el comando curl, con el que podrás realizar peticiones a tu API de forma sencilla y simple desde la línea de comandos.

Operaciones básicas

GET

curl -i -H "Authorization: Token 8ugeb8frSzhiJuBDJNqhYDJk" http://localhost:3000/api/v1/users
@javierav
javierav / knapsack.md
Created August 17, 2020 07:18
Cómo ejecutar los tests en paralelo en el CI con Knapsack

Uno de los aspectos más importantes de un sistema de integración contínua es la velocidad con la que se ejecutan las pruebas automáticas, pues cuanto mayor sea ese tiempo de ejecución más se tardará en ejecutar el resto de acciones asociadas: detección de fallos, despliegues o mezcla de ramas.

Por otra parte, por todos es conocido que aquellos test que interactúan con un navegador web simulando las acciones del usuario son los tests que más tardan en ejecutarse, dándose casos en los que este proceso se demora más de una hora.

En esta breve guía vamos a indicar cómo instalar y configurar nuestro proyecto la gema Knapsack, que nos va a permitir ejecutar nuestros tests en paralelo sin mucho esfuerzo.

Esta gema se encarga de dividir la ejecución de los tests (trabaja a nivel de archivo *_spec.rb) en base a dos parámetros: el número de jobs que vamos a ejecutar y el número de job actual. Adicionalmente trabaja con un archivo knapsack_rspec_report.json que contiene la du

@javierav
javierav / Activate Office 2019 for macOS VoL.md
Created February 5, 2020 18:31 — forked from zthxxx/Activate Office 2019 for macOS VoL.md
crack activate office on mac with license file

Activate MS Office 2019/2016 for macOS - Microsoft_Office_2019_VL_Serializer

Office 2019 above

2019-06-03

Note that Office2019 DO NOT support activate via simple copy/paste plist license file which is the simplest way to activate Office 2016. Fortunately, you can also use the VL Serializer tool, just install Office 2019 and Serializer, then run Serializer to activate.

Ref