Skip to content

Instantly share code, notes, and snippets.

View carlossanchezp's full-sized avatar

Carlos Sánchez Pérez carlossanchezp

View GitHub Profile
@carlossanchezp
carlossanchezp / git-alive
Last active November 12, 2021 23:35
Esta shell sirve para que puedas ver y practicar git. Muestra los commit, nombre del usuario, tipo de merges y rebases en las ramas, el HEAD, etc. Si lo descargas lo colocas en el directorio /usr/lib/git-core y lo puedes llamar como git alive, git es capaz de reconocerlo por la extensión git-mifichero pero sin extensión y con permisos de ejecuci…
#!/bin/bash
while :
do
clear
git --no-pager log -15 --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --all
sleep 1
done
@carlossanchezp
carlossanchezp / .bashrc
Created February 2, 2013 12:00
Si pones estas líneas en tu .bashrc podrás saber en que rama te encuentras de tu directorio de trabajo de GIT.
git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1="${debian_chroot:+($debian_chroot)}\u@\h:\w\$(git_branch)$ "
fi
unset color_prompt force_color_prompt
@carlossanchezp
carlossanchezp / gist:4697034
Last active December 12, 2015 02:18
Para ahorrar escritura e ir directamente a los directorios de trabajo, pon estas líneas en tu .bashrc. Ejemplo si pones goto midir te irá directamente al directorio de tu proyecto midir.
PRJ=$HOME/Proyectos
function goto
{
case $1 in
(mipr) cd $PRJ/miproyecto1;;
(pr) cd $PRJ;;
esac
pwd
}
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :admin
can :manage, :all
else
can :read, :all
# Put this in your ~/.irbrc for easy rails route scanning
#
# Usage:
# > routes
# => prints all routes
# > routes /GET.*user/i
# => prints routes matching a given regex
# > routes "user"
# => matches strings as well
@carlossanchezp
carlossanchezp / gist:5544075
Created May 8, 2013 22:12
Ruby OOP examples
#These Ruby OOP examples, are based on the Rails 3 presentation by @guilhermecaelum
class Person
#the attribute name is immutable
def initialize(name)
@name = name
end
def name
@name
end
end
SchemaPlus::ActiveRecord::ConnectionAdapters::AbstractAdapter.module_eval do
def included(base) #:nodoc:
base.alias_method_chain :initialize, :schema_plus
end
def initialize_with_schema_plus(*args) #:nodoc:
initialize_without_schema_plus(*args)
adapter = case adapter_name
# name of MySQL adapter depends on mysql gem
# * with mysql gem adapter is named MySQL
# right expression, match
str = "12345"
eval = str.match /\A\d+\z/
puts eval ? 'match' : 'no match'
# right expression, no match
str = "hello123world"
eval = str.match /\A\d+\z/
puts eval ? 'match' : 'no match'
@carlossanchezp
carlossanchezp / gist:5849929
Last active December 18, 2015 21:49
Opción 1: Exportar una consulta SQL a CSV desde la consola Mysql Si por ejemplo quieres que cada campo de tu consulta se separe con punto y coma y cada registro por un salto de línea windows (\r\n) o Unix (\n), lo que vendría a ser un CSV. Hay que hacer lo siguiente:
SELECT *
FROM mi_tabla
WHERE condicion
-- Aqui formato de exportación
INTO OUTFILE
'/tmp/fichero_salida.csv'
FIELDS TERMINATED BY ';'
@carlossanchezp
carlossanchezp / gist:5849953
Last active December 18, 2015 21:49
Opción 2: Exportar una consulta SQL a CSV desde terminal En este caso se asume que quieres los campos separados por tabulación para que luego puedas tratarlo en un Excel o similar. Tenemos que utilizar dos parámetros básicos: -e: Indicando que la consulta SQL va entre comillas -B: para indicar que los campos van separados por tabs Finalmente com…
mysql -u root -p MYDATABASE -e "select * from products" -B > fichero33.csv
o en consola podemos utilizar \T:
select * from products \T resultadoooooooo.sql;