Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A tool for planning sake making
# Sake Brewing Scheduler
require 'date'
def dfmt date
case date
when Date
date.strftime "%a, %b %e"
when Range
[date.first,date.last].map{|d|dfmt(d)}.join(" - ")
end
end
def header txt
puts
puts txt, "="*30
puts
end
def step type, date, notes
puts [" "*2, type, dfmt(date), notes].join(" ")
end
def step_detail *details
puts *details.map{ |d| [" "*8, d].join }
end
moto_beginning = ARGV[0] && Date.parse(ARGV[0]) || Date.today
header "酒元"
step "酒元", moto_beginning, "steam rice, mix w/ koji in fermenter"
step "酒元", moto_beginning+1, "_morning_: stir, _evening_: stir"
step "酒元", moto_beginning+2, "_morning_: stir, cool _evening_: stir, pitch yeast, continue cooling"
step "酒元", moto_beginning+3, "_morning_: stir, adjust temp _evening_: stir"
4.upto(5) do |n|
step "酒元", moto_beginning+n, "_morning_: stir, _evening_: stir"
end
step "酒元", moto_beginning+6, "_morning_: stir, _evening_: prep for hatsuzoe"
hatsuzoe = moto_beginning+7
header "醪 & 踊"
step "1-初添", hatsuzoe, "_morning_(9): hatsuzoe!"
step_detail "steam rice soaked overnight",
"while steaming,",
"dissolve 1 ¼ tsp (7g) of salt substitute in a little warm water, then dilute ",
"w/ cold making 2 ¾ cups (650ml)",
"stash in fridge",
"depan rice into big bowl (the pyrex one)",
" add chilled water",
"mix by hand to break up clumps",
" wait until rice temp < 85F (29.5C)",
"add to moto",
"stir vigorously w/ sanitized spoon for 30 minutes!",
"use lid & airlock (like I wasn’t before ;p)",
"keep temp @ 70F (21C) (kitchen is 60-70 so should be ok)",
"_rest of day til 11pm(~12 hours)_:",
" stir every two hours w/ sanitized spoon."
step "2-初添", hatsuzoe+1, "_morning: stir"
step_detail "_evening_: prep for Nakazoe!",
" wash & soak 6 cups (1.42L) of rice in fridge",
" chill 8.75 cups (2.1L) of water, in fridge I think",
" add 1.5 cups (355ml) koji to fermenter & stir"
step "3-仲添", hatsuzoe+2, "_morning_(6:30):"
step_detail "steam rice",
" 7:15 rice steamed; prep rice for adding",
" depan into bowls",
" add chilled water",
" mix by hand to rm clumps",
" add rice to fermenter",
" stir w/ sanitized spoon",
" continue tmp at 70F",
"_evening_:",
" add 3 cups of koji (719ml) to the moromi",
" wash & soak 5 lb of rice (2.27kg)",
" chill 1 gal + 1 cup of water (4.3L)"
step "4-留添", hatsuzoe+3, "_morning_(6:30):"
step_detail "_morning(6:30)_:",
" steam rice! 5lb!!",
" add chilled water",
" break up w/ hands",
" add to fermenter",
" stir w/ sanitized spoon",
" continue tmp at 70F",
"_evening_: relax (I think)"
header "Main fermentation"
main = hatsuzoe+4
step "Main 1", main, "from here, drop temp and leave it alone. keep it ~ 50F or between 45-55"
step_detail "_morning_:",
" check temp, adjust cooling",
" stir",
"_evening_:",
" check temp, adjust cooling",
" stir"
step "Main 2", main+1, ""
step_detail "_morning_:",
" check temp, adjust cooling",
" stir",
"_evening_:",
" check temp, adjust cooling",
" stir"
3.upto(6) do |day|
step "Main #{day}", main+day-1, "maintain temp"
step_detail "_morning_: check temp, adjust cooling",
"_evening_: check temp, adjust cooling"
end
day = 7
step "Main #{day}", main+day-1, "maintain temp, check gravity if you want"
step_detail "_morning_: check temp, adjust cooling",
"_evening_: check temp, adjust cooling"
8.upto(14) do |day|
step "Main #{day}", main+day-1, "maintain temp"
step_detail "_morning_: check temp, adjust cooling",
"_evening_: check temp, adjust cooling"
end
yodan = main + 15
header "四段"
step "", yodan, "could add water"
step_detail "* no water ~~ ABV > 18.5% * (taylor does this, because he likes dry, alcoholy sake)",
"* 30 oz ~ ABV 16%, which is standard",
"could add rice to make it sweeter."
earliest_joso = yodan+3
header "Joso: pressing."
step "", earliest_joso..(earliest_joso+7), "press and rack"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment