Skip to content

Instantly share code, notes, and snippets.

View LukasTsunami's full-sized avatar
🏠
Working from home

Lucas Caponi da Silva LukasTsunami

🏠
Working from home
View GitHub Profile
@LukasTsunami
LukasTsunami / PortaMisteriosa.test.jsx
Created October 25, 2023 12:16
PortaMisteriosa.test.jsx
import { render, screen, fireEvent } from '@testing-library/react';
import PortaMisteriosa from './PortaMisteriosa';
describe('quando carregar o componente', () => {
test('deve mostrar a porta e o botão de abrir porta', () => {
render(<PortaMisteriosa />);
expect(screen.getByText(/Você vê uma porta/i)).toBeInTheDocument();
expect(screen.getByText(/Abrir Porta/i)).toBeInTheDocument();
});
})
@LukasTsunami
LukasTsunami / PortaMisteriosa.jsx
Created October 25, 2023 12:15
PortaMisteriosa.jsx
import React, { useState } from 'react';
function PortaMisteriosa({ qualMonstroEh }) {
const [aberta, setAberta] = useState(false);
const [monstro, setMonstro] = useState(qualMonstroEh);
const [monstroAparece, setMonstroAparece] = useState(false);
const [vezesQueAbriAPorta, setVezesQueAbriAPorta] = useState(1);
const abrirPorta = () => {
@LukasTsunami
LukasTsunami / calcula_azimute.cs
Created May 15, 2020 19:26
melhorando_legibilidade_conversao_azimute_decimal_pra_graus_minutos_e_segundo
/*
O Azimute está relacionado à topografia.
Ele é basicamente o ângulo calculado entre um ponto e
o norte, onde o ponto é importado de uma estação total.
Porém a unidade de trabalho que devemos utilizar
é graus minutos e segundos.
Recebemos o mesmo em decimal e precisamos convertê-lo
*/
@LukasTsunami
LukasTsunami / docker-compose.yml
Created April 25, 2020 03:04
docker-compose rails
version: "3"
services:
rails:
build: .
env_file:
- .env
command: ruby bin/rails s -p 5000 -b '0.0.0.0'
volumes:
- ".:/app"
@LukasTsunami
LukasTsunami / Dockerfile
Created April 25, 2020 03:03
Dockerfile rails
FROM ruby:2.5.5
ENV EDITOR="/bin/true"
# Install container dependencies
RUN apt-get update && apt-get install -y git libc-ares2 postgresql-client --no-install-recommends && rm -rf /var/lib/apt/lists/
# Install NodeJS Version 12 to use MJML templates
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt-get install -y nodejs && npm install -g mjml@4.3.0
ENV PATH $PATH:/node_modules/mjml/lib
# Set the work directory inside container
RUN mkdir /app
@LukasTsunami
LukasTsunami / async.js
Last active July 9, 2019 19:57
Lendo paginas de um livro de forma assincrona
/*
Descrição do problema:
Temos uma função chamada listWithPagination que retorna um array de registros paginados.
A única maneira de conseguir um array com todos os registros,
é fazer requisições sequenciais para cada página, concatenando os resultados.
Descrição da solução:
Criar uma função chamada concatenateResults, que receba como parâmetro a função original
que retorna os dados paginados, e chama essa função sequencialmente para cada página,
até que a resposta seja um array vazio, o que indica que a paginação terminou.
@LukasTsunami
LukasTsunami / gist:648c34633c5277c4324cfa5a499f9753
Last active September 5, 2018 18:06
docker abrir navegador
#!/bin/bash
port=8080
url="http://localhost:$port"
echo abrindo a aplicação no navegador
# se o s.o. for linux
if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
xdg-open "$url"
# se o s.o. for windows 32 bits
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
start "$url"
@LukasTsunami
LukasTsunami / ListaDesejoView_versao_final.sql
Last active February 16, 2017 14:33
Lista de Desejo - Leilão
SELECT DISTINCT
/*Informacoes do Objeto*/
o.id,
o.nome,
o.descricao,
o.observacao,
/*Pre Lances por Objeto, num leilão específico*/
C.lista_leiloes_pre_lances,
/*Valores do Objeto e Informações de Venda*/
o.vendido,