1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
require 'json'
puzzles = [
{
"completionText" => "31st March 1998:",
"puzzleDate" => "2025-03-31",
"completionURL" => "https://en.wikipedia.org/wiki/Mozilla",
"solutions" => {
"Olive or grape plant, maybe" => "vine",
"Castrated male bovine" => "Bullock",
"1995 Sandra Bullock movie \"The ___\"": "Net",
"\"___ old fox\"" => "sly",
"Water meadows" => "ings",
"Mean" => "Par",
"Parents or siblings, for short" => "fam",
"Owls are famously this" => "Wise",
"Shrink" => "contract",
"Euclid's mathematical treatise" => "elements",
"\"No ____s!\": Wise words for superheroes" => "cape",
"________ table of the elements" => "periodic",
"A timed contract with a periodic payment" => "lease",
"Image made from smaller pieces" => "Mosaic",
"The Mosaic Killer" => "Mozilla",
"The start" => "source",
"\"You make a better ____ than a window!\"" => "door",
"\"____ wide!\"" => "open",
"One might enter this to open a door" => "code",
"One of the five senses" => "taste",
"In favour of" => "pro",
"The taste of protons" => "sour",
"Strong curved structure" => "arch",
"Monarch" => "king",
"Timmy never actually fell down one of these" => "well",
"Blood sucking skin dwellers" => "lice"
},
"initialPuzzle" => "[1995 Sandra [Castrated male bo[Olive or grape plant, maybe]] movie \"The ___\"]s[\"No ____s!\": [Owls are [[Mean]ents or sibl[Water meadows], for short]ou[\"___ old fox\"] this] words for superheroes] re[A timed [Shrink] with a [________ table of the [Euclid's mathematical treatise]] payment]s [The [Image made from smaller pieces] Killer] [The start] [One might enter this to open a [\"You make a better ____ than a window!\"]] under an [\"____ wide!\"] [The [One of the five senses] of [In favour of]tons]ce [Blood suc[Mon[Strong curved structure]] skin d[Timmy never actually fell down one of these]ers]nse.",
"puzzleSolution" => "Netscape releases Mozilla source code under an open source license."
}
]
path = $cgi.path_info.split(?/)
$pdata = if path.length == 3
JSON.generate(puzzles.select { |puz| puz["puzzleDate"] == path[2] }.first)
else
JSON.generate(puzzles)
end
|