cd /vagrant
sudo gem install bundler --no-ri --no-rdoc
\curl -L https://get.rvm.io | bash -s stable --ruby
bundle
sudo apt-get update
module RangeScopes | |
extend ActiveSupport::Concern | |
module ClassMethods | |
# Order.between(1..5) => pulls all orders who's ids are between 1 and 4 | |
# Order.between(:customer_id, 1..4) => pulls all orders who's orders.customer_id is between 1 and 4 | |
def between(*args) | |
column = args.first.is_a?(Symbol) ? args.shift : :id | |
range = args.first |
class Hash | |
def compact(opts={}) | |
inject({}) do |new_hash, (k,v)| | |
if !v.nil? | |
new_hash[k] = opts[:recurse] && v.class == Hash ? v.compact(opts) : v | |
end | |
new_hash | |
end | |
end | |
end |
cd ~ | |
sudo apt-get update | |
sudo apt-get install openjdk-7-jre-headless -y | |
### Check http://www.elasticsearch.org/download/ for latest version of ElasticSearch and replace wget link below | |
# NEW WAY / EASY WAY | |
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.deb | |
sudo dpkg -i elasticsearch-1.1.1.deb |
#!/usr/bin/env bash | |
cd ~ | |
sudo apt-get update | |
sudo apt-get install curl wget | |
# install ruby | |
curl -sSL https://get.rvm.io | bash -s stable --ruby="2.0.0-p353" | |
# install imagemagick |
#!/bin/sh | |
# Credits to: | |
# - http://vstone.eu/reducing-vagrant-box-size/ | |
# - https://github.com/mitchellh/vagrant/issues/343 | |
sudo su | |
aptitude -y purge ri | |
aptitude -y purge installation-report landscape-common wireless-tools wpasupplicant ubuntu-serverguide |
Scenario: you're pulling all User records that do not have any associated Activities. In Rails you may find yourself doing something like this...
User.all.select { |user| user.activities.blank? }
Pretty simple to implement, but a performance hog: Rails will load a new ActiveRecord Object for each User, then call for all activities related to the user; simply to determine, which do and don't have any Activites: bad idea.
We can achieve the same result with a fraction of the overhead, using LEFT OUTER JOIN.
require "ostruct" | |
class Arguments | |
def initialize(arguments) | |
@whiny = arguments.delete(:whiny) || false | |
@arguments = arguments | |
@delegee = OpenStruct.new(@arguments) | |
end | |
def method_missing(method, *args) |
" shortcuts | |
inoremap jk <Esc> | |
:hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white | |
:hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white | |
:nnoremap <Leader>c :set cursorline! cursorcolumn!<CR> | |
autocmd BufWritePre * :%s/\s\+$//e | |
" close buffer | |
nmap <leader>d :bp<bar>sp<bar>bn<bar>bd<CR> |
class Sampson < Character | |
def when(event, &block) | |
@events[event] ||= [] | |
@events[event] << block | |
end | |
def bite_thumb | |
call_event :bite_thumb | |
end |