Skip to content

Instantly share code, notes, and snippets.

View ruliana's full-sized avatar

Ronie Uliana ruliana

View GitHub Profile
@ruliana
ruliana / .vimrc
Created March 5, 2012 10:13
My initial vim config
set nocompatible
" Vundle configuration
"======================
filetype off
filetype plugin indent on
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
@ruliana
ruliana / my_model.rb
Created May 11, 2012 02:17
Default values for models in Rails 3.0+
class MyModel < ActiveRecord::Base
after_initialize :token_default_value
private
def token_default_value
self.token ||= UUID.new.generate
end
end
@ruliana
ruliana / gist:2819050
Created May 28, 2012 12:57
Exemplo de intersecção 1
Map<String, List<Pessoa>> pessoasPorCarro = new LinkedHashMap<String, List<Pessoa>>();
//para cada carro da pessoa
for (String carro : pessoa.getCarros()) {
//verificar se alguma outra pessoa possui esse carro
for (Pessoa outraPessoa : pessoas) {
if(pessoa.equals(outraPessoa)) continue;
for (String outroCarro : outraPessoa.getCarros()) {
if (carro.equals(outroCarro)) {
if (pessoasPorCarro.get(carro) == null) pessoasPorCarro.put(carro,new ArrayList<Pessoa>());
pessoasPorCarro.get(carro).add(outraPessoa);
@ruliana
ruliana / gist:2819063
Created May 28, 2012 13:01
Exemplo de intersecção 2
org.apache.commons.collections.ListUtils.intersection(pessoa.getCarros(), outraPessoa.getCarros());
@ruliana
ruliana / gist:2819102
Created May 28, 2012 13:12
Exemplo de intersecção 1 (em Ruby)
pessoas_por_carro = Hash.new{|h, k| h[k] = []}
pessoas.each do |outra_pessoa|
carros_em_comum = pessoa.carros & outra_pessoa.carros
carros_em_comum.each do |carro|
pessoas_por_carro[carro] << outra_pessoa
end
end
@ruliana
ruliana / bootstrap-chef-solo.sh
Last active December 14, 2015 11:28
Bootstrap Chef Solo for Ruby-2.0.0-p0 (run it with "sudo" because it installs ruby in "/usr/local")
#!/usr/bin/env bash
# Pre-requisites
apt-get -y update
sudo apt-get --no-install-recommends -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev
# Download and compile Ruby 2.0.0-p0
cd /tmp
wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
tar -xvzf ruby-2.0.0-p0.tar.gz
@ruliana
ruliana / method_params_demo.rb
Last active December 21, 2015 00:09
Find methods parameters
class Test
def initialize(param1, *param2, param3, param4: '', param5: nil)
end
end
params = Test.instance_method(:initialize).parameters
puts params.inspect
# => [[:req, :param1],
# [:rest, :param2],
# [:req, :param3],
@ruliana
ruliana / pipe_testing.rb
Created September 13, 2013 22:45
Testing pipes in Ruby :)
class PipeSource
def initialize(stream)
@stream = stream
@head_lambda = ->(it) { it }
end
def |(lambd)
temp = @head_lambda
@head_lambda = ->(it) do
lambd.call(temp.call(it))
class Synthetizer
def initialize
@heap = []
end
def push(element)
@heap << element
end
def synth(sexp)
# General
# set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g base-index 1
set -g pane-base-index 1
set -g prefix C-a
set -s escape-time 0
set -g set-titles on
set -g mode-keys vi
#set -g set-titles-string ' #(__git_ps1) '
set -g status-interval 2