Skip to content

Instantly share code, notes, and snippets.

@lawrencejones
Created June 8, 2014 14:39
Show Gist options
  • Save lawrencejones/a2cb4757cdd00d6bcab7 to your computer and use it in GitHub Desktop.
Save lawrencejones/a2cb4757cdd00d6bcab7 to your computer and use it in GitHub Desktop.
# /api/courses/year/cid
num = /^\d+$/
nonWhitespace = /^[^\s\t\r\n]$/
nonEmpty = /[^\s\t\r\n]+/
any = /.*/
cateRes =
/^https:\/\/cate\.doc\.ic\.ac\.uk\/showfile\.cgi\?key=(\d{4,4}):\d+:\d+::(NOTES|SPECS):\w+$/
discussion =
title: nonEmpty
_link: /^\/api\/discussions\/\d+$/
note =
number: num
restype: /^(pdf|url)$/
title: nonEmpty
link: cateRes
time: num
discussions: [discussion]
given =
type: nonEmpty
title: nonEmpty
link: cateRes
time: num
exercise =
number: num
type: nonWhitespace
name: any
start: num
end: num
mailto: /^mailto:.+$/
spec: cateRes
givens: [given]
course =
_link: /^\/api\/courses\/\d{4,4}\/[^/]+$/
cid: nonWhitespace
name: nonEmpty
terms: [num]
classes: [nonWhitespace]
discussions: [discussion]
notes: [note]
exercises: [exercise]
givens: [given]
module.exports = (json) ->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment