Skip to content

Instantly share code, notes, and snippets.

#
# Here, we query all JobSeekers where any of their "desired
# specializations" match any of the job's "required specializations"
# AND any of their "desired positions" match any of the job's...etc
#
# We also only want JobSeekers who have NOT accepted this job.
#
# And we do a fulltext keyword search too, just for fun.
#
class Metric
include MongoMapper::Document
key :timestamps, Array
key :action, String
def self.track(action)
collection.update(
{ :action => action },
{ "$push" => { :timestamps => Time.now }},
$ rake swatches
"Creating: white (#FFFFFF) => images/colors/white.png"
"Creating: navy (#304264) => images/colors/navy.png"
"Creating: black (#0F0F0F) => images/colors/black.png"
"Creating: forest_green (#2E5234) => images/colors/forest_green.png"
"Creating: blue (#3055A0) => images/colors/blue.png"
"Creating: orange (#DA7A2D) => images/colors/orange.png"
"Creating: green (#4D8756) => images/colors/green.png"
"Creating: brick (#6F0028) => images/colors/brick.png"
# Rakefile
desc "Create new color swatches"
task :swatches do
require "yaml"
YAML.load_file("swatches.yml").each do |name, color|
p "Creating: #{name} (#{color}) => images/colors/#{name}.png"
%x[ convert -size 16x16 xc:white -draw "stroke #666666 fill white rectangle 0,0 15,15" -draw "stroke white fill #{color} rectangle 1,1 14,14" "images/colors/#{name}.png" ]
end
class PhoneCallsController < ApplicationController
def create
http = Net::HTTP.new('clients4.google.com', 443)
http.use_ssl = true
path = '/voice/embed/webButtonConnect'
request_params = params[:phone_call].map { |k, v| "#{ CGI.escape(k) }=#{ CGI.escape(v) }" }.join("&")
request_headers = {}
resp, data = http.post(path, request_params, request_headers)
<form id="google-voice" action="https://clients4.google.com/voice/embed/webButtonConnect" method="post">
<input type="hidden" name="phone_call[buttonId]" value="<YOUR API KEY>" />
<input type="hidden" name="phone_call[showCallerNumber]" value="1" />
<ul>
<li>
<label>Your Name</label>
<input type="text" name="phone_call[callerNumber]" />
</li>
# app/models/job.rb
class Job
# job.specializations will hold an array of strings
# like this: ['rails', 'javascript']
serialize :specializations, Array
# Solr will index each element of the array separately
searchable do
<% form_for Job.new do |f| %>
#
# Here, we use a multiple select, but any forrm element named
# "job_specializations[]" will populate the jobs.specializations
# array
#
<%= f.select :specializations,
["rails", "ruby", "js", "python],
:multiple => true %>
require 'rack/utils'
class FlashSessionCookieMiddleware
def initialize(app, session_key = '_session_id')
@app = app
@session_key = session_key
end
def call(env)
if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
$("#google-voice").submit(function(e){
e.preventDefault();
$.post("/phone_calls", $(this).serialize(), function(data){
if(data=="ok=true"){
console.log("success");
}
else{
console.log("failure");