Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions javascript/Talita Santos/Animal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class Animal {
animais = [];
rimas = []

adicionarAnimais(animal) {
this.animais.push(animal);
console.log(`${animal} adicionado`);
}

adicionarRimas(rima) {
this.rimas.push(rima);
console.log(`${rima} adicionado`);
}
}

module.exports = Animal;
43 changes: 43 additions & 0 deletions javascript/Talita Santos/Musica.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
class Musica {

primeiroVerso(animal) {
console.log(`There was an old lady who swallowed a ${animal};`)
}

segundoVerso(animal, rima) {
console.log(`I don't know why she swallowed a ${animal} - perhaps she'll ${rima}!`)
}

terceiroVerso(animal) {
if (animal === "spider") {
console.log("That wriggled and wiggled and tickled inside her.")
}

if (animal === "bird") {
console.log("How absurd to swallow a bird.")
}

if (animal === "cat") {
console.log("Fancy that to swallow a cat!")
}

if (animal === "dog") {
console.log("What a hog, to swallow a dog!")
}

if (animal === "cow") {
console.log("I don't know how she swallowed a cow!")
}

if (animal === "horse") {
console.log("...She's dead, of course!")
}
}

quartoVerso(animalSwallowed, animalToCatch) {
console.log(`She swallowed the ${animalSwallowed} to catch the ${animalToCatch};`)
}

}

module.exports = Musica;
8 changes: 8 additions & 0 deletions javascript/Talita Santos/descricao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Módulo de Refatoração

Dentre os [projetos listados](https://docs.google.com/document/d/1TBZ8jkS0orAVJJRPKNYPmuqNQNn0ns_GcDuOklKcQBc/edit), selecionei o desafio "Sing a Song Kata", desenvolvido em javascript.

## Descrição do desafio:
O código para produzir uma canção infantil popular foi produzido por uma agência da web para o cliente no ano passado. O cliente agora deseja produzir múltiplas versões diferentes da música usando a mesma estrutura, mas com base em temas diferentes, por exemplo, um filme infantil popular atual com um elenco de animais. O cliente pede que você <b>torne a música configurável para diferentes listas de animais</b>. O cliente não pode garantir que haverá o mesmo número de animais em cada versão diferente.

Descrição disponível [aqui](https://kata-log.rocks/sing-a-song-kata) (em Inglês).
49 changes: 49 additions & 0 deletions javascript/Talita Santos/documentacao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Documentação

## Projeto "Sing a Song Kata"

### Objetivo geral
Produzir diferentes versões de uma canção utilizando a mesma estrutura, mas, tendo como base diferentes temas. A canção deve ser configurável para uma lista de diferentes animais.

### Classes do projeto

#### Classe Musica
- Responsável por compor diferentes estrofes da música, utilizando a mesma estrutura.
- Possui os métodos ``primeiroVerso``, ``segundoVerso``, ``terceiroVerso`` e `quartoVerso`:

- O método ``primeiroVerso`` recebe o parâmetro ``animal``, e a saída no console é o primeiro verso, por exemplo:
`"There was an old lady who swallowed a fly."`

- O método ``segundoVerso`` recebe os parâmetros ``animal`` e ``rima``, e a saída é o segundo verso, personalizando a rima, por exemplo:
`"I don't know why she swallowed a fly - perhaps she'll die!"`

- O método ``terceiroVerso`` recebe o parâmetro ``animal``. Ele fará a análise do parâmetro recebido, para retornar a saída do terceiro verso, personalizando a rima, por exemplo:

`"That wriggled and wiggled and tickled inside her."` para o parâmetro ``spider``.

- O método ``quartoVerso`` recebe os parâmetros ``animalSwallowed`` e ``animalToCatch``para retornar a saída do quarto verso, por exemplo:
`"She swallowed the spider to catch the fly;"`


<hr>

#### Classe Animal
- Responsável por receber e armazenar a lista de animais;
- Responsável por receber e armazenar a lista de rimas;
- Possui os métodos ``adicionarAnimais`` e ``adicionarRimas``;
- O método ``adicionarAnimais`` recebe ``animal`` como um parâmetro, para incrementar a lista de animais;
- O método ``adicionarRimas`` recebe ``rima`` como um parâmetro, para incrementar a lista de rimas;

#### Classe index
- Responsável pela simples execução de testes locais, utilizando ``console.log``.

### Comunicação entre as classes
- Como as classes se conversam entre si?
- Como o objetivo final do projeto é atingido?

### Como rodar o projeto
- Utilizar o arquivo ``index.js`` para visualizar a canção no console.

## Implementações futuras
- Fazer as classes ``Animal`` e ``Musica`` se comunicarem;
- Implementar testes usando jest.
56 changes: 56 additions & 0 deletions javascript/Talita Santos/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
const Musica = require ("./Musica");

const musica = new Musica();

musica.primeiroVerso("fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("spider");
musica.terceiroVerso("spider");
musica.quartoVerso("spider", "fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("bird");
musica.terceiroVerso("bird");
musica.quartoVerso("bird", "spider");
musica.quartoVerso("spider", "fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("cat");
musica.terceiroVerso("cat");
musica.quartoVerso("cat", "bird");
musica.quartoVerso("bird", "spider");
musica.quartoVerso("spider", "fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("dog");
musica.terceiroVerso("dog");
musica.quartoVerso("dog", "cat");
musica.quartoVerso("cat", "bird");
musica.quartoVerso("bird", "spider");
musica.quartoVerso("spider", "fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("cow");
musica.terceiroVerso("cow");
musica.quartoVerso("cow", "dog");
musica.quartoVerso("dog", "cat");
musica.quartoVerso("cat", "bird");
musica.quartoVerso("bird", "spider");
musica.quartoVerso("spider", "fly");
musica.segundoVerso("fly", "die");

console.log("\n")

musica.primeiroVerso("horse");
musica.terceiroVerso("horse");