Skip to content

Instantly share code, notes, and snippets.

View huyttq's full-sized avatar

Huy Thái huyttq

  • Perth, Australia
View GitHub Profile
@huyttq
huyttq / AASM_FactoryGirl.rb
Created November 10, 2011 02:37
Override initial state of AASM by using 'mocha' mock
TestObject.any_instance.stubs(:set_initial_state)
@huyttq
huyttq / gist:1354244
Created November 10, 2011 06:14
Using yield to execute
def send_task
self.class.execute { self.prepare!; self }
end
def self.execute
begin
ActiveRecord::Base.connection.execute("LOCK TABLE tasks WRITE")
tasks = [*yield]
ensure
ActiveRecord::Base.connection.execute("UNLOCK TABLE")
@huyttq
huyttq / gist:1354248
Created November 10, 2011 06:17
Slice specific param to work well with cabybara
<td>
<%= link_to("Send", send_task_admin_path(task, params.slice(:page))) %>
</td>
@huyttq
huyttq / gist:1363082
Created November 14, 2011 02:15
.vimrc for ruby
"-----------------------------------------------------------------------------
" General
"-----------------------------------------------------------------------------
set nocompatible
set history=1024
set cf " enable error files and error jumping
set ffs=unix,dos,mac " support these files
filetype on
filetype plugin on
filetype indent on
@huyttq
huyttq / gist:1380019
Created November 20, 2011 08:54
Useful bash commands
History: Ctrl + r
Find: find /home/user -name abc.txt
Pipeline: vi `find /home/user -name abc.txt`
Ctrl-x, Ctrl-e will bring up an $EDITOR containing whatever is currently entered into the prompt. (opposed to editing last command actually entered)
Managing remote systems and trying to figure out what hardware you're on and whether it's healthy or not: dmidecode
Repeat last command with "sudo" prepended: sudo !!
Execute <command> with the argument to your previous command: <command> !$ / !* for get all args.
@huyttq
huyttq / gist:1813644
Created February 13, 2012 04:22
Zero downtime when migration
# http://blog.tstmedia.com/news_article/show/85364?referrer_id=308069
class << self
RemovedColumns = {'column_to_remove' => true}
def columns
cols = super
cols.reject { |col| RemovedColumns.has_key? col.name }
end
end
# http://pedro.herokuapp.com/past/2011/7/13/rails_migrations_with_no_downtime/
@huyttq
huyttq / gist:1814612
Created February 13, 2012 07:28
Rails & Jenkins notes
http://lostechies.com/ryansvihla/2011/09/25/rail-3-1-ci-setup-with-jenkins-test-unit-simplecov-on-os-x-lion/
http://danseaver.com/blog/2011/11/22/using-jenkins-with-rails/
http://rails-jenkins.danseaver.com/#1
Setup Redis server
http://www.denofubiquity.com/nosql/412/
@huyttq
huyttq / gist:1814610
Created February 13, 2012 07:27
Ruby code quality
http://www.slideshare.net/martin_j_andrews/code-quality-analysis?type=presentation
@huyttq
huyttq / gist:1862679
Created February 19, 2012 09:06
Useful Vim commands
# Replace text across files
:args dir_path/*/* #(for 2 levels)
:argdo %s/, :expire.*)/)/gc | update
@huyttq
huyttq / gist:2000353
Created March 8, 2012 10:42
Install imagemagick
#!/bin/bash
mkdir -p ~/local
command -v identify > /dev/null
if [ $? -eq 1 ]; then
echo "${bldgrn}Installing imagemagick into ${txtwht}$HOME/local/imagemagick${txtrst}"
wget -N --retr-symlinks ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar -xzvf ImageMagick.tar.gz
cd ImageMagick-*
./configure --prefix=$HOME/local/imagemagick
make