Skip to content

Commit 2c8ca8c

Browse files
committed
chore(03): updated examples
1 parent 5cadf21 commit 2c8ca8c

16 files changed

+157
-167
lines changed

03-cd/00-groovy/00-grovy-console.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
# The Groovy Console
22

3-
Lo primero que necesitamos para trabajar con cualquier tipo de lenhuajes es algo que valide y verificque que nuestro código se comporta de la manera que nsostros esperamos.
3+
Lo primero que necesitamos para trabajar con cualquier tipo de lenguajes es algo que valide y verifique que nuestro código se comporta de la manera que nsostros esperamos.
44

5+
Nuestro objetivo final será `Jenkins`. Como nota al respecto, `Jenkins` tiene internamente, una consola de `Groovy` para validar de los `scripts`. Pero para desarrollar nos puede convenir una solución más ligera.
56

6-
Nuestro objectivo final será `Jenkins`. Como nota al respecto, `Jenkins` tiene internamente, una consola de `Groovy` para validar de los `scripts`. Pero para desarrollar nos puede convenir una solución más ligera.
7+
`Apache`, tiene una herramienta como la que necesitamos [link](http://groovy-lang.org/download.html). Esta aplicación es una aplicación de `swing`.
78

8-
`Apache`, tiene una herramienta como la que necesiatamos [link](http://groovy-lang.org/download.html). Esta aplicación es una aplicación de `swing`.
9-
10-
* Algo para verificar y validar nuestro código.
11-
* Nuestro objetivo es `Jenkins`.
12-
* Un sitio para experimentar.
9+
- Algo para verificar y validar nuestro código.
10+
- Nuestro objetivo es `Jenkins`.
11+
- Un sitio para experimentar.
1312

1413
Una alternativa a instalar de manera local, es utilizar un [contenedor de Docker](https://hub.docker.com/_/groovy?tab=description)
1514

@@ -33,18 +32,19 @@ System.getenv().each{
3332
println "------------------------------------------------------------------"
3433
```
3534

36-
Ahora desde el directorio raíz en el cual hemos creado el ficero anterior, podemos ejecutar:
35+
Ahora desde el directorio raíz en el cual hemos creado el fichero anterior, podemos ejecutar:
3736

3837
```bash
39-
docker run --rm -v "$PWD":/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy BasicDocker.groovy -a
38+
docker run --rm -v "$PWD":/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy BasicDocker.groovy
4039
```
4140

42-
* `-a` es para volcar las variables de sistema.
43-
* `-w` establecemos el directorio de trabajo dentro del contenedor.
41+
- `--rm` elimina el contenedor cuando esté parado.
42+
- `-v` enlazamos el directorio en el que nos encontramos a `/home/groovy/scripts` dentro del contenedor.
43+
- `-w` establecemos el directorio de trabajo dentro del contenedor a `/home/groovy/scripts`.
4444

4545
# Demo: La Consola de Groovy
4646

47-
* Create `playground/00_groovy_console.groovy`
47+
- Create `playground/00_groovy_console.groovy`
4848

4949
```groovy
5050
def x = 5
@@ -92,4 +92,4 @@ Jaimes-MacBook-Pro:playground jaimesalaszancada$ docker run --rm -v $(pwd):/home
9292
Caught: java.lang.AssertionError: Value was not eleven. Expression: (x == 11). Values: x = 10
9393
java.lang.AssertionError: Value was not eleven. Expression: (x == 11). Values: x = 10
9494
at 00_groovy_console.run(00_groovy_console.groovy:7)
95-
```
95+
```

03-cd/00-groovy/01-tipos-de-datos.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
**Groovy** es un lenguaje con tipado opcional, lo que significa que podemos trabajar con tipos `primitivos de Java`, o podemos dejar que el `runtime` los deduzca del contexto, lo cuál lo hace bastante bien.
44

5-
* `x` es claramente un número
6-
* Un lenguaje opcionalmente tipado
7-
* Sin ninguna definición de tipo
5+
- `x` es claramente un número
6+
- Un lenguaje opcionalmente tipado
7+
- Sin ninguna definición de tipo
88

99
Veamos cuales son los tipo primitivos que vamos a utilizar:
1010

1111
| Data Type | Groovy Keyword | Sample Data |
12-
|:---------:|:--------------:|---------------|
13-
| Strings | String | "Jaime Salas" |
14-
| Integers | int | 0, 1, 2, 3 |
15-
| Floats | float | 0.5, 3.8 |
16-
| Boolean | Boolean | true, false |
12+
| --------- | -------------- | ------------- |
13+
| Strings | String | "Jaime Salas" |
14+
| Integers | int | 0, 1, 2, 3 |
15+
| Floats | float | 0.5, 3.8 |
16+
| Boolean | Boolean | true, false |
1717

1818
# Demo: Tipos de Datos
1919

@@ -30,12 +30,12 @@ println name + " is a programmer? " + isProgrammer // [1]
3030
println name + " wishes his salary was " + salary // [1]
3131
```
3232

33-
1. Groovy convierte los `booleans` y `float` a `strings`
33+
1. Groovy convierte los `booleans` y `float` a `strings`
3434

3535
Y lo podemos ejecutar de la siguiente manera:
3636

3737
```bash
38-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
38+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
3939
Joe Doe has created 14 courses.
4040
Joe Doe is a programmer? true
4141
Joe Doe wishes his salary was 1000000.0
@@ -56,7 +56,7 @@ println name + " wishes his salary was " + salary
5656
```
5757

5858
```bash
59-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
59+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
6060
Joe Doe has created 14 courses.
6161
Joe Doe is a programmer? True
6262
Joe Doe wishes his salary was 1000000.0
@@ -77,7 +77,7 @@ println name + " is a programmer? " + isProgrammer.toString().capitalize()
7777
```
7878

7979
```bash
80-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
80+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 01_groovy_data_types.groovy
8181
Joe Doe has created 14 courses.
8282
Joe Doe is a programmer? True
8383
Joe Doe wishes his salary was $1000000.00
@@ -102,6 +102,6 @@ Simplemente como nota en `Java` tenemos `;` para terminar una línea, en `Groovy
102102

103103
### Tipos de Datos y Sintaxis
104104

105-
* "def" opcional o tipo de dato explicito
106-
* ¿Perder el tipado? Nop
107-
* Ciando devolvemos un valor está perfectamente claro el tipo devuelto
105+
- "def" opcional o tipo de dato explicito
106+
- ¿Perder el tipado? Nop
107+
- Cuando devolvemos un valor está perfectamente claro el tipo devuelto

03-cd/00-groovy/02-estructuras-de-control.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Estructuras de Control
22

3-
Para hacer algo medianamente importante en nuestros scripts, necesitamos estructuras de control. La más esencial de ellas es `if else`, que tiene la misma apariencia que en `Java` on en `C`
3+
Para hacer algo medianamente importante en nuestros scripts, necesitamos estructuras de control. La más esencial de ellas es `if else`, que tiene la misma apariencia que en `Java` on en `C`
44

55
```groovy
66
if (isProgrammer) {
@@ -10,7 +10,7 @@ else {
1010
println "Not a programmer, tho"
1111
}
1212
```
13-
13+
1414
Lo mismo para un `loop`
1515

1616
```groovy
@@ -30,7 +30,6 @@ while (i < courseCount) {
3030
}
3131
```
3232

33-
3433
Podemos definir un `for in loop` de la siguiente manera:
3534

3635
```groovy
@@ -84,7 +83,7 @@ singers.each{println(it)}
8483
Y lo ejecutamos de la siguiente manera:
8584

8685
```bash
87-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 02_control_structures.groovy
86+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 02_control_structures.groovy
8887
He's a programmer
8988
Chris made course 1!!!
9089
Chris made course 2!!!
@@ -110,4 +109,4 @@ George
110109
Jeff
111110
Roy
112111
Tom
113-
```
112+
```

03-cd/00-groovy/03-subrutinas.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
# Subrutinas
22

3-
En `Groovy` existen dos tipos de subrutinas. Funciones y métodos.
4-
5-
Las funciones deveulven un valor, los métodos no. Algunos lenguajes hacen una fuerte defirenciación entre ambos tipos, pero `Groovy`, como `Java` y `C#`, simplemente define un método como una función devolviendo el tipo `void`.
3+
En `Groovy` existen dos tipos de subrutinas. Funciones y métodos.
64

5+
Las funciones devuelven un valor, los métodos no. Algunos lenguajes hacen una fuerte diferenciación entre ambos tipos, pero `Groovy`, como `Java` y `C#`, simplemente define un método como una función devolviendo el tipo `void`.
76

87
Imaginemos que en nuestros procesos de build, necesitamos generar credenciales para los usuarios. Queremos crear un nombre de usuario simple usando la primera letra del nombre más el apellido, de esta manera los usuarios tendrán un nombre de usuario único.
98

10-
119
Nuestra segunda función va a ser un función que imprima los nombres por consola.
1210

13-
* Funciones
14-
* Métodos
15-
* Groovy, Java y C#: void return type
16-
* Una función para crear credenciales desde el nombre
11+
- Funciones
12+
- Métodos
13+
- Groovy, Java y C#: void return type
14+
- Una función para crear credenciales desde el nombre
1715

18-
# Demo: Soubrutinas
16+
# Demo: Subrutinas
1917

20-
Crear un nuevo fichero [03_groovy_soubroutines](playground/03_soubroutines.groovy)
18+
Crear un nuevo fichero [03_groovy_subroutines](playground/03_soubroutines.groovy)
2119

2220
Vamos a comenzar una aseveración sencilla
2321

@@ -35,9 +33,9 @@ String getUserName(String firstName, String lastName) {
3533
assert getUserName("Jaime", "Salas") == "jsalas" : "getUserName isn't working"
3634
```
3735

38-
Lo podemos ejecutar con `docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_subroutines.groovy`, nos devuelve __null__ indicando que el resultado es correcto.
36+
Lo podemos ejecutar con `docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_subroutines.groovy`, nos devuelve **null** indicando que el resultado es correcto.
3937

40-
Imprimos el valor a la consola para hacerlo un poco más claro:
38+
Imprimimos el valor a la consola para hacerlo un poco más claro:
4139

4240
```diff
4341
String getUserName(String firstName, String lastName) {
@@ -69,10 +67,10 @@ printCredentials(getUserName("Jaime", "Salas"))
6967
/**/
7068
```
7169

72-
Después de ejecutar, teenmos
70+
Después de ejecutar, tenemos
7371

7472
```bash
75-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_soubroutines.groovy
73+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_subroutines.groovy
7674
jsalas
7775
UserName is jsalas
7876
```
@@ -107,10 +105,10 @@ void printCredentials(cred) {
107105
Después de ejecutar, tenemos
108106

109107
```bash
110-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_soubroutines.groovy
108+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 03_subroutines.groovy
111109
UserName is fadriá
112110
UserName is dgarcía
113111
UserName is jcruz
114112
UserName is jroca
115113
UserName is mberasategi
116-
```
114+
```

03-cd/00-groovy/04-clases-objetos.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ Con las subrutinas ya tenemos una primera base para la encapsulación. Pero desd
44

55
Para crear una clase simplemente usamos `class`.
66

7-
* Nivel base para la encapsulación
8-
* Envolvemos nuestro código en clases
9-
* Listas paralelas => objectos con dos propiedades
10-
* Muy similar a `Java` o `C#`
7+
- Nivel base para la encapsulación
8+
- Envolvemos nuestro código en clases
9+
- Listas paralelas => objectos con dos propiedades
10+
- Muy similar a `Java` o `C#`
1111

1212
```groovy
1313
class User {
@@ -19,7 +19,7 @@ User user = new User();
1919

2020
# Demo: Trabajando con Clases y Objetos
2121

22-
Creamos el siguiente fichero [04_working_with_classe_and_objects.groovy](playground/04_working_with_classes_and_objects.groovy)
22+
Creamos el siguiente fichero [04_working_with_classes_and_objects.groovy](playground/04_working_with_classes_and_objects.groovy)
2323

2424
> Nota: Comenzamos desde el código de la demo anterior.
2525
@@ -72,10 +72,10 @@ for (int i = 0; i < firstNames.size(); i++) {
7272
}
7373
```
7474

75-
Podemos ejecutarlo paar verificar que el código es correcto.
75+
Podemos ejecutarlo para verificar que el código es correcto.
7676

7777
```bash
78-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 04_working_with_classes_and_objects.groovy
78+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 04_working_with_classes_and_objects.groovy
7979
UserName is fadria
8080
UserName is dgarcia
8181
UserName is jcruz
@@ -159,4 +159,4 @@ class User {
159159
+for (int i = 0; i < users.size(); i++) {
160160
+ println("UserName is ${users[i].UserName()}")
161161
+}
162-
```
162+
```

03-cd/00-groovy/05-herencia.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
# Herencia
22

3-
* Es posible qeu no la necesiatemos
4-
* `Groovy` soporta lass interfaces
5-
- Las interfaces para el scripting no suele tener mucho sentido
6-
- Tienen más cabida las clases abstractaas
7-
* Las clases abstractas no tienen implementación
8-
* Nadie tiene _exactamente_ un coche
9-
* Tienen _instancias_ de un coche
10-
* Copiar y pegar es maligno
11-
3+
- Es posible qeu no la necesitaremos
4+
- `Groovy` soporta lass interfaces
5+
- Las interfaces para el scripting no suele tener mucho sentido
6+
- Tienen más cabida las clases abstractas
7+
- Las clases abstractas no tienen implementación
8+
- Nadie tiene _exactamente_ un coche
9+
- Tienen _instancias_ de un coche
10+
- Copiar y pegar es maligno
1211

1312
# Demo: Herencia
1413

@@ -45,7 +44,7 @@ users.each(user -> println("UserName is ${user.UserName()}"))
4544
Y lo podemos ejecutar de la siguiente manera
4645

4746
```bash
48-
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 05_inheritance.groovy
47+
$ docker run --rm -v $(pwd):/home/groovy/scripts -w /home/groovy/scripts groovy:latest groovy 05_inheritance.groovy
4948
UserName is bdylan
5049
UserName is jlynne
5150
UserName is rorbison
@@ -176,4 +175,4 @@ users.each{
176175
}
177176
/*diff*/
178177
179-
```
178+
```

03-cd/00-groovy/06-external-packages.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
En este punto, ya deberíamos tener una base para crear scripts en `Groovy`. Pero nos falta una última pieza, el proceso de interactuar con paquetes externos.
44

5-
* Paquetes externos
6-
* Nos permiten acceder al trabajo de otros desarrolladores.
5+
- Paquetes externos
6+
- Nos permiten acceder al trabajo de otros desarrolladores.
77

88
La realidad es que ya tenemos de forma automática ciertos paquetes con `Groovy`, la realidad es que no los podemos llamar realmente externos porque siempre van a estar incluidos. Todo script de `Groovy` importa los siguientes paquetes.
99

10-
| java.io.* | java.lang.* | java.math.BigDecimal | java.math.BigInteger |
11-
|:---------:|:-----------:|----------------------|----------------------|
12-
| java.net | java.util | groovy.lang.* | groovy.util.* |
13-
10+
| java.io.\* | java.lang.\* | java.math.BigDecimal | java.math.BigInteger |
11+
| ---------- | ------------ | -------------------- | -------------------- |
12+
| java.net | java.util | groovy.lang.\* | groovy.util.\* |
1413

1514
Esto es equivalente a tener los siguientes imports en nuestro script
1615

@@ -25,8 +24,7 @@ import java.math.BigInteger
2524
import java.math.BigDecimal
2625
```
2726

28-
Casi siempre que comenzamos a trabajar terminamos necesiatndo alguno de estos.
29-
27+
Casi siempre que comenzamos a trabajar terminamos necesitando alguno de estos.
3028

3129
# Demo: Trabajando con paquetes externos
3230

@@ -41,7 +39,7 @@ ArrayList data = jsonSlurper.parse(new File(filePath));
4139
println(data.getClass())
4240
4341
for (chef: data) {
44-
42+
4543
println(chef.name);
4644
for (restaurant: chef.restaurants) {
4745
println('\t' + restaurant.name)
@@ -56,4 +54,4 @@ Si ejecutamos esto ahora obtenemos el siguiente mensaje: `3: unable to resolve c
5654
+
5755
String filePath = "/home/groovy/scripts/chef.json";
5856
...
59-
```
57+
```

0 commit comments

Comments
 (0)