Skip to content

Instantly share code, notes, and snippets.

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

Lucivaldo lucivaldo

🏠
Working from home
View GitHub Profile
@lucivaldo
lucivaldo / getMonthBehavior.ts
Last active May 30, 2024 20:12
Função Typescript para gerar um intervalo de objetos Date Javascript para ser utilizado na construção de calendários de meses
const makeDate = (year: number, month: number, day: number) =>
new Date(year, month, day, 0, 0, 0)
const makeRangeBetweenDates = (start: Date, end: Date) => {
const range: Date[] = []
for (
const i = new Date(start);
i.getTime() <= end.getTime();
i.setDate(i.getDate() + 1)
@lucivaldo
lucivaldo / csv_builder.rb
Created March 5, 2024 11:30
Classe Ruby simples para gerar arquivos CSV de maneira mais dinâmica
require 'csv'
class CSVBuilder
def initialize
@columns = []
@data = []
end
def add_column(column_name)
@columns << column_name
@lucivaldo
lucivaldo / elapsed_time.rb
Created January 18, 2024 21:50
Classe Ruby para medir o tempo de execução de um código passado como bloco de código
class ElapsedTime
def elapsed
start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
yield if block_given?
end_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
elapsed_time = "%.2f" % (end_time - start_time)
puts "Tempo decorrido: #{elapsed_time} segundos"
@lucivaldo
lucivaldo / Dockerfile
Last active June 26, 2023 22:32
Exemplo de arquivo Dockerfile para projetos Rails somente API usando Alpine e com banco de dados SQLite
FROM ruby:3.2.2-alpine
LABEL maintainer="Lucivaldo Castro <lucivaldocb@gmail.com>"
RUN apk update && apk add --virtual build-dependencies build-base
RUN apk add \
less \
mailcap \
sqlite-dev \
tzdata
@lucivaldo
lucivaldo / text_to_fuzzy_search.rb
Last active March 22, 2023 15:47
Função para converter texto em um array de textos para buscas fuzzy
def text_to_fuzzy_search(text)
first_word, *rest_words = text.split
rest_words_chars = rest_words.map { _1.split('') }
search = first_word.dup
array = [search]
rest_words_chars.each do |chars|
search += " "
@lucivaldo
lucivaldo / ConfirmDialog.tsx
Created May 26, 2022 21:08
Provider para fornecer a funcionalidade de dialogo de confirmação globalmente em aplicações React
import { faCheck, faTimes, faWarning } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import {
Box,
Button,
Dialog,
DialogActions,
DialogContent,
DialogTitle,
Backdrop,
@lucivaldo
lucivaldo / getGitLabIssuesByMilestone.js
Last active September 18, 2021 17:38
Exemplo de código JS para realizar várias chamadas assíncronas para API backend utilizando iterables e for await...of
const fetchAllResources = async (resources, params) => {
const asyncIterable = {
[Symbol.asyncIterator]() {
return {
page: '1',
finished: false,
async next() {
if (!this.finished) {
const response = await api.get(resources, {
params: { ...params, page: this.page },
@lucivaldo
lucivaldo / config.fish
Last active January 22, 2021 16:17
My fish config
# Android Studio
#set -x ANDROID_STUDIO_HOME $HOME/android-studio
#set PATH $ANDROID_STUDIO_HOME/bin $PATH
# Configurações para Cordova
set -x ANDROID_SDK_ROOT $HOME/Android/Sdk
set -x ANDROID_HOME $HOME/Android/Sdk
set PATH $HOME/.sdkman/candidates/gradle/6.6.1/bin $PATH
# Configurações para Ionic
@lucivaldo
lucivaldo / two_letters.dart
Created June 29, 2020 23:18
Função para obter as letras inicias do nome e sobrenome
void main() {
var name = 'Lucivaldo Castro Castelo Branco';
print(twoLetters(name));
}
String twoLetters(String name) {
if (name.trim().isEmpty) return null;
var nameSplited = name.trim().replaceAll(RegExp(r'\s+', ), ' ').split(' ');
var letters = nameSplited.first[0];
@lucivaldo
lucivaldo / change_wallpaper.rb
Last active April 20, 2020 13:33
Script Ruby para alterar o Wallpaper
#!/usr/bin/env ruby
module ChangeWallpaper
HOME = ENV['HOME']
PICTURES_PATH = HOME + '/Pictures'
WALLPAPERS_PATH = PICTURES_PATH + '/Wallpapers'
def self.change
wallpaper = Dir.glob("#{WALLPAPERS_PATH}/**/*").sample
command = "gsettings set org.gnome.desktop.background picture-uri #{wallpaper}"