Skip to content

Instantly share code, notes, and snippets.

@nwjsmith
nwjsmith / query_optim_core.clj
Last active May 31, 2016 14:42
A start on spec-ing Datomic queries
(ns query-optim.core
(:require [clojure.spec :as s]
[clojure.spec.gen :as gen]
[clojure.string :refer [starts-with?]]
[clojure.test.check.generators :as generators]))
(s/def ::query
(s/cat :find-spec ::find-spec
:with-clause (s/? ::with-clause)
#!/usr/bin/env ruby
require 'csv'
require 'socket'
class AverageSessionsPerServer
Server = Struct.new(:name, :current_sessions, :status) do
META_SERVER_NAMES = ['FRONTEND', 'BACKEND'].freeze
def up?
require 'spec_helper'
require 'open3'
describe 'unnest' do
it 'can unnest nested class definitions in a file' do
example_input = <<-EOF
module A::B
class C::D::E < F::G
def initialize(foo)
@foo = foo
module Mixin
def fail
raise "ARRRGH!"
end
alias_method :blurgh, :fail
end
class Includer
include Mixin
<% unless form.object.errors.empty? %>
<div class="alert alert-danger">
<p><strong>Bummer!</strong> Try again after fixing this up:</p>
<% form.object.errors.full_messages.each do |message| %>
<ul>
<li><%= message %></li>
</ul>
<% end %>
</div>
<% end %>
@nwjsmith
nwjsmith / ancestors.sql
Created December 20, 2015 21:43
Recursive ancestors query for PostgreSQL
WITH RECURSIVE ancestors(id, name, created_at, updated_at) AS (
SELECT categories.id, categories.name, categories.created_at, categories.updated_at
FROM categories, categorizations
WHERE categorizations.subcategory_id = '667C9DF5-48C0-496B-922A-1B7D743B1A39'
AND categories.id = categorizations.category_id
UNION ALL
SELECT categories.id, categories.name, categories.created_at, categories.updated_at
FROM categories, categorizations, ancestors
WHERE categorizations.subcategory_id = ancestors.id
AND categories.id = categorizations.category_id
(ns categories.core
(:require [datomic.api :as d]))
(let [uri (str "datomic:mem://" (gensym))
conn (and (d/create-database uri) (d/connect uri))]
@(d/transact conn [{:db/id #db/id[:db.part/db]
:db/ident :category/name
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
renameKey = (from, to, obj) ->
results = {}
for k, v of obj
if k == from
results[to] = v
else
results[k] = v
results
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rails', github: 'rails/rails'
# Act like Vim
setw -g mode-keys vi
# Use the mouse
set -g mode-mouse on
# Look good
set -g default-terminal "screen-256color"
set -g status-right "#[fg=black]#(rbenv version | awk '{ print $1 }' 2> /dev/null)"
set -g status-bg "blue"