Skip to content

Instantly share code, notes, and snippets.

@devn
devn / block_local_vars.rb
Created November 8, 2011 21:49
block local variables
age = 26
name = "Devin"
1.upto(5) do |age;name|
age = 100
name = "Rip Van Winkle"
puts "#{name} is #{age} years old"
end
puts age # => 26
@devn
devn / static-asset-route.clj
Created October 11, 2011 18:31
static-file-routes.clj
(def routes
(-> (app
["examples" text] {:get [(fn [req] (walton-html text))]}
[#".*\.js"] {:get [(file-response "resources/public")]}
[#".*\.css"] {:get [(file-response "resources/public")]})
(wrap-file "resources/public")))
@devn
devn / gist:1224410
Created September 17, 2011 21:55
def'd haml-engine cannot be eval'd via the REPL?
(ns blog.core
(:require [ring.adapter.jetty :as jetty]
[clojure.contrib.io :as io]
[clojure.contrib.classpath :as cp])
(:import [org.jruby.embed ScriptingContainer LocalContextScope]))
(def scripting-container (ScriptingContainer. LocalContextScope/THREADSAFE))
(defn execute-rb [rb-string]
(. scripting-container runScriptlet rb-string))
(ns demo.gemstoclojure
(:require [ring.adapater.jetty :as jetty]
[clojure.contrib.io :as io]
[clojure.contrib.classpath :as cp])
(:import [org.jruby.embed ScriptingContainer LocalContextScope]))
(def container (ScriptingContainer. LocalContextScope/THREADSAFE))
(println (cp/classpath))
(println (io/pwd))
@devn
devn / gist:1212075
Created September 12, 2011 19:01
jrubyize rails 3 Yecht error
/master ☣(solo)> JRUBY_OPTS=--1.9 bundle exec rake --trace
rake aborted!
uninitialized constant Syck::Yecht
/Users/someusername/.rvm/gems/jruby-head@somecompany/gems/configatron-2.8.2/lib/configatron/store.rb:326:in `Store'
/Users/someusername/.rvm/gems/jruby-head@somecompany/gems/configatron-2.8.2/lib/configatron/store.rb:2:in `Configatron'
/Users/someusername/.rvm/gems/jruby-head@somecompany/gems/configatron-2.8.2/lib/configatron/store.rb:1:in `(root)'
/Users/someusername/.rvm/gems/jruby-head@somecompany/gems/configatron-2.8.2/lib/configatron/store.rb:5:in `(root)'
/Users/someusername/.rvm/gems/jruby-head@somecompany/gems/configatron-2.8.2/lib/configatron.rb:2:in `(root)'
/Users/someusername/git/company_i_work_for/somecompany/photos/vendor/somecompany/foreignclient/lib/module_helpers.rb:3:in `(root)'
/Users/someusername/git/company_i_work_for/somecompany/photos/vendor/somecompany/foreignclient/lib/foreignclient.rb:12:in `(root)'
@devn
devn / state-is-a-fold.clj
Created June 21, 2011 00:16 — forked from ordnungswidrig/state-is-a-fold.clj
State is a fold over events
(ns state-is-a-fold
(:use clojure.test))
;;; After all, state is a fold of events. For example let's say the events are a sequence of numbers
;;; and we are folding by addition:
(deftest simple
(let [events [1 5 2 4 3]
state (reduce + events)]
(is (= 15 state))))
@devn
devn / gist:1003844
Created June 2, 2011 02:53 — forked from weavejester/gist:1001206
Clojure on Heroku
~/$ lein new ring-on-heroku
Created new project in: /home/jim/Development/ring-on-heroku
~/$ cd ring-on-heroku
~/ring-on-heroku$ echo 'web: lein run -m ring-on-heroku.core' > Procfile
~/ring-on-heroku$ cat > src/ring_on_heroku/core.clj
(ns ring-on-heroku.core
(:use ring.util.response
ring.adapter.jetty))
(defn app [req]
@devn
devn / devins-slime-clojure-swank.el
Created April 8, 2011 15:30
This is a dirty config that you'll need to modify to fit your own needs, but in general it has some nice stuff you might want to add to your own config.
;; Clojure
;; Load files, set mode based on hooks and filename
(require 'clojure-mode)
(autoload 'clojure-mode "clojure-mode" "A major mode for Clojure" t)
(add-to-list 'auto-mode-alist '("\\.clj$" . clojure-mode))
(require 'swank-clojure)
;; Clojure
;; Load files, set mode based on hooks and filename
(require 'clojure-mode)
(autoload 'clojure-mode "clojure-mode" "A major mode for Clojure" t)
(add-to-list 'auto-mode-alist '("\\.clj$" . clojure-mode))
(require 'swank-clojure)
(require 'slime)
@devn
devn / gist:854070
Created March 4, 2011 02:34
clojure regex
(defn extract-sexps
"Extracts s-exp from a string."
[#^String string]
(second
(reduce (fn [[exp exps state cnt] c]
(cond
(= state :escape)
[(.append exp c) exps :string cnt]
(= state :string) (cond
(= c \")