Skip to content

Instantly share code, notes, and snippets.

View mikeymckay's full-sized avatar

Mike McKay mikeymckay

View GitHub Profile
FuzzyMatch = require 'fuzzy-matching'
PouchDB = require 'pouchdb'
_ = require 'underscore'
database = new PouchDB("http://****:*******@gooseberry.tangerinecentral.org:5984/gooseberry")
database.get "tusome teacher zones"
.then (doc) =>
zones = _(doc.data).chain().map (row) =>
row.Zone.replace(/\(.*\)/, "").trim()
@mikeymckay
mikeymckay / couchclone.sh
Last active May 24, 2018 07:50 — forked from janoskk/couchclone.sh
Create (if necessary) and replicate all databases from a couchdb server to another one
#!/bin/sh
#
# Janos Kasza (@janoskk)
#
# Creates (if necessary) and replicates all databases from a couchdb server to another one
#
if [ -z "$2" ]; then
cat <<EOF
Usage: $0 <sourceUrl> <targetUrl>
{"id":"user.mmckay","rev":"483-3aa701c325713bc5188c725b2cff5eed","rev_tree":[{"pos":481,"ids":["56bc58ec9e722170a1f7e1e853b9e80a",{"status":"available"},[["5c8362fc2fdd4202bc96b4aed9f42388",{"status":"available"},[["a7a68d1e78f54bbba45d5dfb4b90a8fa",{"status":"available"},[["3825e6364907403d9509c023b1a4872c",{"status":"available"},[["020734783608439ba9b2beb4e910d7d0",{"status":"available"},[]]]]]]]]]]},{"pos":483,"ids":["3aa701c325713bc5188c725b2cff5eed",{"status":"available"},[]]}],"winningRev":"485-020734783608439ba9b2beb4e910d7d0","deleted":false,"seq":715}
@mikeymckay
mikeymckay / gist:dbc535cf96d5cd7d1e967dc2787bc602
Created January 30, 2018 20:24
show all available revisions
db = new PouchDB()
user = "user.mmckay"
db.get user,
revs_info: true
.then (result) ->
availableRevs = _(result._revs_info).chain().filter (rev) ->
rev.status is "available"
.pluck("rev").value()
_(availableRevs).each (rev) ->
db.get user,
@mikeymckay
mikeymckay / gist:0dc7f46a81adb270f05622d6d87a7cdd
Created June 14, 2017 08:40
Adding a backbone filter to pre/post process data (useful for encoding data in the database)
originalResultSync = Result::sync
Result::sync = (method, model, options) =>
console.log method
console.log model
console.log options
if method is "update" or method is "create"
newModelAttributes = {
_id: model.get "_id"
}
# RSpec
require 'spec/expectations'
# Webrat
require 'webrat'
require 'test/unit/assertions'
World(Test::Unit::Assertions)
Webrat.configure do |config|
request = require 'request'
glob = require 'glob'
_ = require 'underscore'
database = process.argv.pop()
glob "**/*.coffee", (er, files) ->
_(files).each (view) ->
return if view.match(/__reduce/) or view is "executeViews.coffee"
#! /usr/bin/env ruby
require 'rubygems'
require 'couchrest'
require 'json'
@db = CouchRest.new(ARGV[0]).database!(ARGV[1])
#Get all .coffee files
Dir.glob("*.coffee").each do |view|
next unless view.match(/__reduce/).nil?
@mikeymckay
mikeymckay / index.js
Last active May 11, 2016 10:58 — forked from tristen/index.js
Using tablesort.extend in browserified tablesort
'use strict';
var tablesort = require('tablesort');
function cleanNumber(i) {
return i.replace(/[^\-?0-9.]/g, '');
}
function compareNumber(a, b) {
a = parseFloat(a);
@mikeymckay
mikeymckay / gist:00daafd5d55306242b6c
Created February 9, 2016 18:04
Download a list of songs from youtube
cat Pandora\ Songs | sed -r 's/^/gvsearch1:/' | xargs -d '\n' --max-args=1 youtube-dl -x --audio-format mp3