Skip to content

Instantly share code, notes, and snippets.

@knwang
knwang / gist:2720266
Created May 17, 2012 17:12
hugarocketeer javascript 3
....
returned_results: 0,
initialize: function() {
var self = this;
this.collection = new People();
_.each(rocketeers, function(person) {
$.getJSON(person.get("search_url"), function(data) {
@knwang
knwang / gist:2720264
Created May 17, 2012 17:11
hugarocketeer javascript 2
$(function(){
var Person = Backbone.Model.extend({
defaults: {
img_url: '',
name: '',
hugs: 0,
},
refresh_hugs: function() {
var self = this;
$.getJSON(this.get("search_url"), function(data) {
@knwang
knwang / gist:2719697
Created May 17, 2012 15:39
hugarocketeer markup 1
<body>
<div id="hug_a_rocketeer">
<ul id="rocketeers">
<li>
<div id='pic_and_name'>
<img src='http://dummyimage.com/50x50/574b57/bcbfeb.png'/>
<span> Marian Phalen </span>
</div>
<ul id="props">
<li> 3 Hugs </li>
@knwang
knwang / candidates_controller.rb
Created October 8, 2011 20:36
Proofing_oven: Candidate Controller refactored
class CandidatesController < ApplicationController
expose(:candidates) { Candidate.search(params[:search]).order(:first_name) }
def search
render :index
end
end
@knwang
knwang / index.html.haml
Created October 8, 2011 20:35
Proofing_oven: Candidates list view refactored
.search
= form_tag search_candidates_path, method: :post do
%fieldset
= text_field_tag :search, params[:search]
= submit_tag "Search"
%table.standard
%thead
%tr
- ["Name", "Phone", "Email", "Github", "Twitter", "Local", "Willing to Relocate"].each do |th|
@knwang
knwang / candidate.rb
Created October 8, 2011 20:34
Proofing_oven: Candidate Model refactored
class Candidate < ActiveRecord::Base
scope :search, ->(term) { term.blank? ? {} : where("full_name like ?", "%#{term}%") }
before_save :denormalize_name
private
def denormalize_name
self.full_name = [first_name, last_name].join(' ')
@knwang
knwang / candidates_controller.rb
Created October 8, 2011 20:13
Proofing_oven: candidate controller with search
class CandidatesController < ApplicationController
expose(:candidates) { Candidate.order(:first_name) }
expose(:search_term) { params[:search] }
expose(:search_results) { Candidate.search(search_term) if search_term }
def search
render :index
end
end
@knwang
knwang / candidate.rb
Created October 8, 2011 19:02
Proofing_oven: candidate model with search
class Candidate < ActiveRecord::Base
before_save :denormalize_name
def self.search(term)
term.blank? ? Candidate.all : where("full_name like ?", "%#{term}%")
end
private
@knwang
knwang / AddFullNameColumnToCandidates.rb
Created October 8, 2011 18:55
Proofing_oven: add full_name column migration
class AddFullNameColumnToCandidates < ActiveRecord::Migration
def self.up
add_column :candidates, :full_name, :string
end
def self.down
remove_column :candidates, :full_name
end
end
@knwang
knwang / candidate_spec.rb
Created October 8, 2011 18:38
Proofing_oven: Candidate Spec with search
require 'spec_helper'
describe Candidate do
subject { Fabricate(:candidate, first_name: "Joe", last_name: "Doe") }
describe "#full_name" do
its(:full_name) { should == "Joe Doe" }
end
describe "#search" do