Skip to content

Instantly share code, notes, and snippets.

View clm-a's full-sized avatar

Clément Alexandre clm-a

View GitHub Profile
# Find me at https://gist.github.com/863277
# Run me with "rails new myapp -J -m https://gist.github.com/raw/863277/rails3-template-with-devise-compass-and-friends.rb"
# You should visit
# http://everydayrails.com/2011/02/28/rails-3-application-templates.html
# http://railswizard.org
# http://stackoverflow.com/questions/4999207/rails-3-application-templates
# https://github.com/fnichol/rails-template-recipes
# for some inspiration about application templates.
# twitter.com/@clmntlxndr
@clm-a
clm-a / index-with-fields_for.html.erb
Created March 16, 2011 09:44
Howto : work with index in Rails 3's fields_for
<%= form_for parent do |parent_form_builder| %>
<%= parent_form_builder.text_field :name %>
<% parent.children.each_with_index do |child, index| %>
<% parent_form_builder.fields_for :children, child do |child_form_builder| %>
<%= child_form_builder.select :age, (0..99).to_a %>
<%# generates "parent[:children_attributes][index][age]" as name for the input %>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
@clm-a
clm-a / Javascript shuffle.js
Created April 1, 2011 14:20
Shuffle a javascript array
Array.prototype.shuffle = function( b ) {
var i = this.length, j, t;
while( i ) {
j = Math.floor( ( i-- ) * Math.random() );
t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
this[i] = this[j];
this[j] = t;
}
return this;
};
@clm-a
clm-a / endless_hash.rb
Created April 1, 2011 14:23
Infine hash
Hash.new { |h, k| h[k] = Hash.new(&h.default_proc) }
@clm-a
clm-a / not_match_whole_word_regexp.pl
Created April 5, 2011 10:39
A regexp not to match a whole word.
# following DOES match "foobar", "fooadmin", "adminbar", "fooadminbar" but not "admin" as a whole word :
/^((?!\badmin\b)[^\s]*)$/
# more reserved keywords :
/^((?!\badmin\b|\bteam\b)[^\s]*)$/
# http://www.regular-expressions.info/wordboundaries.html
# http://www.regular-expressions.info/lookaround.html
@clm-a
clm-a / try_hash.rb
Created April 28, 2011 14:02
Try on a nested hash
# http://rubyquicktips.tumblr.com/post/4601358354/using-try-with-a-hash-to-check-existence-of-a-key
hsh = { :existing_key =>
{
:existing_sub_key => :value
}
}
hsh.try(:[], :existing_key).try(:[], :existing_sub_key)
# => :value
@clm-a
clm-a / join_lines.rb
Created August 16, 2011 16:07
Join multiple lines with a different separator
"toto\ntiti".lines.map{|l| l.strip}.to_a.join(", ")
@clm-a
clm-a / touch_gestures.js
Created August 16, 2011 16:08
Touch gestures
element.addEventListener('touchstart', function(e) {
e.preventDefault();
}, false);
element.addEventListener('touchmove', function(e) {
e.preventDefault();
}, false);
@clm-a
clm-a / root_commit.sh
Created March 10, 2012 10:08
Insert a blank root commit on an existing repo
# from http://stackoverflow.com/a/647451
git symbolic-ref HEAD refs/heads/newroot
git rm --cached -r .
git clean -f -d
# then you apply the same steps
git commit --allow-empty -m 'root commit'
git cherry-pick $(git rev-list --reverse master | head -1)
@clm-a
clm-a / class_samples.rb
Created March 17, 2012 14:03
Some ruby samples playing with classes
# Playing with classes and structs
MyClass = Class.new
p MyClass.class
# => Class
my_instance = MyClass.new