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.
#
<% 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 %>
#
# You can also do Job.solr_search, but I like this syntax better
#
Sunspot.search(Job) do
with(:specializations, ['rails', 'python', 'perl')
end.results
# 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
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"
# swatches.yml
black: "#0F0F0F"
blue: "#3055A0"
gray: "#949A9F"
green: "#4D8756"
light_green: "#92C14F"
navy: "#304264"
orange: "#DA7A2D"
red: "#C31E38"
teal: "#477D79"
# 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
$("#uploadify").uploadify({
// Eval the response
'onComplete' : function(a, b, c, response){ eval(response) },
// And set the accept header to application/javascript
'scriptData' : {
'<%%= session_key_name %>' : '<$%= u cookies[session_key_name] %>',
'_http_accept': "application/javascript"
},
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/