Skip to content

Instantly share code, notes, and snippets.

@jaycfields
jaycfields / gist:3072091
Created July 8, 2012 18:07
spy and verify
require 'spec_helper'
describe MyController do
describe "create" do
it "filters sensitive data from the log" do
invocations = Rails.logger.spy_on.add {|_, _, msg| msg}
post :create, :myobj => {:social_security_number => "123-45-6789"}
invocations.grep(/Parameters:/).first.should include('"social_security_number"=>"[FILTERED]"')
@jaycfields
jaycfields / gist:3796866
Created September 27, 2012 22:37
thread-last solution
(->> [jay john mike chris]
(filter (comp (partial = "new york") :current-city))
(group-by :employer)
(#(update-in % ["drw.com"] (partial map :name))))
@jaycfields
jaycfields / gist:3796868
Created September 27, 2012 22:37
thread-last solution
(->> [jay john mike chris]
(filter (comp (partial = "new york") :current-city))
(group-by :employer)
(#(update-in % ["drw.com"] (partial map :name))))
@jaycfields
jaycfields / gist:3796869
Created September 27, 2012 22:38
result set
;;; the data we're looking for as a result
{"drw.com" ("jay fields" "john dydo"),
"thoughtworks.com" [{:name "chris george",
:current-city "new york",
:employer "thoughtworks.com"}]}
@jaycfields
jaycfields / gist:3796875
Created September 27, 2012 22:39
starting data
;;; the data we will start out with -
(def jay {:name "jay fields" :employer "drw.com" :current-city "new york"})
(def john {:name "john dydo" :employer "drw.com" :current-city "new york"})
(def mike {:name "mike ward" :employer "drw.com" :current-city "chicago"})
(def chris {:name "chris george" :employer "thoughtworks.com" :current-city "new york"})
@jaycfields
jaycfields / gist:3796945
Created September 27, 2012 22:54
the dry-est
(-> [jay john mike chris]
(->> (filter (comp (partial = "new york") :current-city))
(group-by :employer))
(update-in ["drw.com"] (partial map :name)))
@jaycfields
jaycfields / gist:3796964
Created September 27, 2012 22:57
less dry, easier to digest
(-> [jay john mike chris]
(->> (filter (comp (partial = "new york") :current-city)))
(->> (group-by :employer))
(update-in ["drw.com"] (partial map :name)))
@jaycfields
jaycfields / gist:3797114
Created September 27, 2012 23:40
lein tar
(ns leiningen.tar
(:require leiningen.jar leiningen.clean
[clojure.java.io :as io])
(:use clojure.java.shell))
(defn normalize-path [root path]
(let [f (io/file path)]
(.getAbsolutePath (if (.isAbsolute f) f (io/file root path)))))
(defn tar [project & args]
@jaycfields
jaycfields / gist:3803875
Created September 29, 2012 12:35
blog entry for no anonymous functions
(def jay {:name "jay fields" :employer "drw.com" :current-city "new york"})
(def john {:name "john dydo" :employer "drw.com" :current-city "new york"})
(def mike {:name "mike ward" :employer "drw.com" :current-city "chicago"})
(def chris {:name "chris george" :employer "thoughtworks.com" :current-city "new york"})
[jay john mike chris]
[{:name "jay fields", :current-city "new york", :employer "drw.com"}
{:name "john dydo", :current-city "new york", :employer "drw.com"}
{:name "mike ward", :current-city "chicago", :employer "drw.com"}
@jaycfields
jaycfields / gist:3803921
Created September 29, 2012 13:02
input & output
;; input
[{:name "jay fields", :current-city "new york", :employer "drw.com"}
{:name "john dydo", :current-city "new york", :employer "drw.com"}
{:name "mike ward", :current-city "chicago", :employer "drw.com"}
{:name "chris george", :current-city "new york", :employer "thoughtworks.com"}]
;; desired output
{"thoughtworks.com" ("chris george"), "drw.com" ("jay fields" "john dydo" "mike ward")}