Wednesday, May 12, 2010

Garlic Chicken and Potatoes

ingredients = {
  :chicken => (3..4).pieces,
  :potatoes => 3..4,
  :carrots => 2..3,
  
  :butter => 2.tbsp,
  :olive_oil => 2.tbsp,
  :parsley => 1.tbsp,
  :rosemary => 1.tbsp,
  :basil => 1.tsp,
  :garlic => 2.cloves,
  :salt and :pepper => you.decide
}

oven.set_heat 350.F

casserole_dish << :foil

(carrots and potatoes).peel if you.want?
(carrots and potatoes).chop

casserole_dish << :carrots << :potatoes << :chicken

ingredients[:butter].melt
garlic.press or garlic.chop

bowl << :butter << :oil << :parsley << :rosemary << :garlic << :basil << :salt << :pepper
bowl.contents.mix

bowl.contents.pour :over => casserole_dish.contents

oven << casserole_dish

you.wait 45.minutes

oven.remove casserole_dish

while not casserole_dish.contents.cooked?
  oven << casserole_dish
  you.wait
end

oven.set_heat :off

you.eat

Tuesday, May 11, 2010

Spinach Omelette

ingredients = {
  :eggs => 2,
  :spinach => 2.tbsps,
  :milk => 2.tbsps
}

extras = {
  :grated_cheese => 0.25.cups,
  :onion => 3.tbsps,
  :green_onion => 3.tbsp,
  :tabasco => (1/8).tsp,
  :peppers => 3.tbsp
}

pan.element.set_heat :medium

bowl << :eggs << :spinach << :milk << extras

bowl.contents.mix

pan << bowl.contents

you.wait until pan.contents.mostly_cooked?

spatula.move :around => :edge_of_pan

pan.contents.flip!

you.wait until pan.contents.cooked?

pan.element.set_heat :off

you.eat

Monday, April 19, 2010

Mac and Cheese

ingredients = {
:macaroni => 3.cups,
:milk => 2.cups,
:flour => 0.25.cups,
:salt => 0.75.tsp,
:garlic_powder => 0.75.tsp,
:grated_cheese => 1.cup
}

# first the mac
pot << :water
pot.element.set_heat :high

you.wait until water.boiling?

pot << :macaroni

you.stir pot.contents

# now the cheese
small_pot << :milk << :flour << :garlic_powder << :salt

you.stir small_pot.contents, :with => :whisk

small_pot.element.set_heat :medium_low

you.stir small_pot.contents until small_pot.contents.thick?

small_pot.element.set_heat :off
small_pot << :cheese
you.stir until cheese.melted?

# now mix the two

you.wait until pot.contents.cooked?

pot.contents.strain

pot << small_pot.contents

you.stir pot.contents

you.eat

Saturday, April 10, 2010

Refried Black Beans

ingredients = {
:cooked_black_beans => 3.cups,
:olive_oil => 3.tbsp,
:garlic => 2.cloves
}

you.chop :garlic

pan << :oil
pan.set_heat :medium

you.wait 30.seconds

pan << :garlic

you.wait 1.minute, :stirring => :occasionally

pan << :beans

until beans.mashed?
pan.contents.stir
pan.contents.mash :with => :back_of_spoon

pan << :oil if necessary?
end

you.eat

Friday, April 9, 2010

Paté Chinois

This is a variant of the shepherd's pie recipe I posted a while back, courtesy of Julie:
require 'mashed_potatoes'

ingredients = {
:mashed_potatoes => 1.recipe, # do this exactly like in the other recipe
:ground_beef => 0.5.pounds,
:corn => 1.cup
:salt => you.decide
:pepper => you.decide
}

pan << :ground_beef, :salt, :pepper
pan.element.set_heat :medium

class Meat
def cooked?
not self.red?
end
end

until meat.cooked?
you.stir :occasionally, :with => :wooden_spoon
end

casserole_dish << :meat_mixture
casserole_dish << :corn
you.spread :corn, :evenly
casserole_dish << :mashed_potatoes
you.spread :mashed_potatoes, :evenly

oven.turn_on 350
oven << casserole_dish
you.wait 25.minutes

you.eat

Friday, April 2, 2010

Pancakes

It seems like every pancake recipe on the Internet either gets the pancakes way too dry or way too wet, and you end up with crappy pancakes. This recipe makes them nice, light and fluffy.
ingredients = {
:flour => 1.cup,
:baking_powder => 3.tbsp,
:salt => 0.5.tsp,
:brown_sugar => 3.tbsp,

:egg => 1,
:milk => 1.25.cups,
(:vegetable_oil or :canola_oil) => 3.tbsp,
:vanilla => 0.25.tsp
}

bowl << :flour << :baking_powder << :salt << :brown_sugar

bowl.contents.mix!

bowl << :egg << :milk << :oil << :vanilla

bowl.contents.mix!

until bowl.empty?
until pan.full?
pan << bowl.remove :pancake_sized_piece
end

you.wait until pan.contents.cooked?

pan.contents.each do |pancake|
pancake.flip!
end

you.wait until pan.contents.cooked?

plate << pan.contents
end

you.eat :with => (:maple_syrup or :fruit or :yogurt or you.choose)
Also if anybody is interested in submitting a recipe, feel free. They can be in whatever language you like, we don't need to restrict them all to Ruby! The only restriction is that they have to be in a programming language.

Saturday, March 6, 2010

Apple Banana Smoothie

require 'food_processor' or 'blender'

ingredients = {
:banana => 1,
:apple => 1,
:milk => (2..4).cups,
:cinnamon => you.decide
}

banana.slice
apple.slice

if you.have? :blender
blender << :apple << :banana << :milk << :cinnamon
blender.blend
else
tall_plastic_dish << :apple << :banana << :milk << :cinnamon
food_processor.stir until tall_plastic_dish.contents.smooth?
end

you.eat
makes 2.servings

Tuesday, March 2, 2010

Kimchi Fried Rice

require 'kimchi'
require 'white_rice'

ingredients = {
:white_rice => 1.recipe(2.people),
:kimchi => (5..7).pieces,
:onion => 0.25,
:eggs => 2,
(:olive_oil or :peanut_oil) => 2.tbsp,
:sesame_seeds => 1.tsp
}

you.chop :onion

pan << :oil << :onion
pan.element.set_heat :medium

you.wait until onion.soft?

pan << :kimchi << :sesame_seeds

you.wait 3.minutes

pan << :rice

you.stir pan.contents

pan << :eggs

you.stir pan.contents

you.wait until egg.cooked?

you.eat

Monday, March 1, 2010

Kimchi

ingredients = {
# most grocery stores carry this, it looks like a cabbage but longer
:napa_cabbage => 1,
:garlic => 1.piece,
:ginger => 1.tbsp,
:hot_chili_flakes => 1.tbsp,

:coarse_salt => 1.tbsp,
:water => 4.cups,

# you can add other veggies too, as you like:
:green_onion => 2.tbsp,
:carrots => 1,
:cucumber => 1
}

you.wash :napa_cabbage
you.cut :napa_cabbage, :into => 4.pieces
napa_cabbage.pieces.each do |piece|
piece.remove_core
piece.separate_into_leaves
end

begin
# try to intersperse the cabbage leaves and salt
big_bowl << :napa_cabbage << :coarse_salt
big_bowl << :water
ensure
big_bowl.water_level > big_bowl.napa_cabbage
end

fridge << big_bowl

you.wait 1.day

big_bowl.drain
you.rinse big_bowl.contents

you.chop :garlic, :ginger, :other_veggies

big_bowl << :garlic << :ginger << :hot_chili_flakes << :other_veggies
you.mix big_bowl.contents

jar.clean

big_bowl.contents.each do |piece|
jar << piece
jar.pack
end

jar << big_bowl.drain

jar.seal
dark_room_temperature_place << jar

you.wait 2.days

you.eat
fridge << jar

Tuesday, February 23, 2010

Rice Pilaf

ingredients = {
:white_rice => 1.cup,
:celery => (1..2).sticks,
:cayenne => you.decide,
:pepper => you.decide
}

if you.have? :chicken_stock
ingredients[:chicken_stock] = 2.cups
ingredients[:salt] = 2.tsp if not chicken_stock.salted?
else
ingredients[:water] = 2.cups
ingredients[:chicken_bouillon] = 1.cube
end

pot << ((:chicken_stock and :salt) or (:water and :chicken_bouillon))
pot << :celery << :pepper << :cayenne

if you.like? :onion
ingredients[:onion] = 0.5
ingredients[:olive_oil] = 1.tbsp

you.chop :onion

pan << :olive_oil << :onion
pan.element.set_heat :medium

you.wait until onion.soft?

pot << pan.contents
end

pot.element.set_heat :high

when pot.boiling? do
pot.element.set_heat :low
end

you.wait 20.minutes

pot.remove_from_heat

you.wait 5.minutes

you.eat

Thursday, February 18, 2010

Gozleme

require 'mashed_potatoes'
require 'basic_dough'

ingredients = {
:mashed_potatoes => 1.recipe,
:basic_dough => 1.recipe,
:onion => 0.5..1,
:olive_oil => 2.tbsp,
:cayenne => 1.tsp,
:celery => 1.stick,
:cheese => 1.cup,

:coarse_salt => you.decide,
:pepper => you.decide,
(:butter or :margarine) => :as_needed
}

def make_filling
you.chop :onions, :celery

pan.element.set_heat :medium
pan << :olive_oil << :onions << :celery << :cayenne

if onions.brown?
pan.element.set_heat :low
pan << :cheese << :mashed_potatoes << :pepper
end
end

def prepare_dough
dough_balls = basic_dough.form :into => :balls, :radius => 3.cm

dough_balls.each do |ball|
ball.flatten! :thickness => 5.mm
ball << :filling
ball.fold :over => :filling
you.pinch ball.edges
you.sprinkle :salt, :onto => ball
end
end

def cook
pan2.element.set_heat :medium
dough_balls.each do |ball|
pan2 << :butter
you.wait 10.seconds

pan2 << ball
you.wait 2.minutes

ball.flip
you.wait 2.minutes

pan2.remove ball
end
end

make_filling
prepare_dough
cook

you.eat

Sunday, February 14, 2010

Poached Eggs Update

I discovered a better way of making poached eggs so that the egg whites don't separate nearly as much. You can see the updated recipe here.

Saturday, February 13, 2010

Basic Dough

This recipe is not really intended to be eaten on its own (although you can if you like) but used for more advanced recipes.
servings = 1  # change this to the amount of dough you want

ingredients = {
:white_flour => servings * 1.cup,
:water => servings * (0.5).cups,
:salt => servings * (0.5).tsp
}

bowl << :white_flour << :salt
bowl.contents.mix

while bowl.water.amount < ingredients[:water]
bowl.add :water, :slowly
bowl.contents.stir
end

bowl.cover :with => :towel
you.wait 15.minutes


Recipes that build off this:
Gozleme

Tuesday, February 2, 2010

Hollandaise Sauce

# this is a slight adaptation to the recipe found
# in the Joy of Cooking
ingredients = {
:eggs => 3,
:water => 1.5.tbsp,
:lemon_juice => 3.tsp,
:cayenne => (1/8).tsp,
:pepper => (1/4).tsp,

# don't use margarine, it doesn't
# taste very good
:butter => 10.tbsp
}

if not butter.salted?
ingredients[:salt] = (1/2).tsp
end

# see below for an easy way to do this
eggs.separate_yolks

metal_bowl << :water << :egg_yolks
you.whisk :eggs until eggs.frothy?
pot << :water
pot.element.set_heat :medium

# here's the hard part
if pot.simmering?
# you can't rest it ON the pot, since it will cook
# the eggs where the bowl touches the pot
you.hold :metal_bowl, :over => pot

# you don't want to cook the eggs, just get them
# slightly thick
while not eggs.slightly_thick?
you.whisk :occasionally
end
end

you.wait until eggs.slightly_cooled?

bowl << :butter
microwave << bowl
microwave.cook until butter.melted?

while bowl.contains? :butter
metal_bowl.add :melted_butter, :very_slowly
you.whisk
end

metal_bowl << :lemon_juice << :cayenne << :pepper

you.serve :with => :something

class Eggs
def separate_yolks
# do this over a bowl so that the egg white drops into the bowl
over :bowl do
egg.crack # but don't open!
egg.turn until egg.crack.horizontal?
egg.shell.open

while egg.contains? :white
you.transfer :egg, :to => :other_shell
end
end

# you can use egg whites for lots of things, and they freeze well.
# If you don't have anything to use them for right away, just
# put them in a tupperware and pop them in the freezer. Maybe I
# will post a recipe using them sometime, or you can just toss them
# into scrambled eggs sometime.
end
end

Monday, January 25, 2010

Hard-Boiled Eggs

This is a basic recipe that is intended for use with more complex recipes.
ingredients = {
:eggs => you.decide
}

pot << :water
pot.element.set_heat :high

if pot.boiling?
# this means don't break the eggs :P
pot.insert :eggs, :with => :shell
end

you.wait 10.minutes

pot.element.set_heat :off
pot.remove :water

unless you.can_wait?
cold_tap.turn_on
you.put :eggs, :under => :tap
else
you.wait 10.minutes
end

eggs.remove_shell

you.eat

Sunday, January 24, 2010

Poached Eggs

This is a very basic recipe, intended as a building block for more complex recipes.

ingredients = {
:eggs => 2,

# vinegar helps keep the eggs from coming apart
:vinegar => 1.tbsp
}

pot << :water
pot.set_heat :high

if pot.boiling?
pot << :vinegar
pot.set_heat :medium
end

if pot.simmering?
ladle << (you.crack :eggs)
pot.submerge ladle
end

if pot.eggs.cooked?
pot.remove :eggs, :with => :slotted_spoon
end

you.eat

Monday, January 18, 2010

Egg-fried Rice

require "white_rice"

ingredients = {
:white_rice => 1.recipe,
:olive_oil => 2.tbsp, # you can use vegetable oil if you like
:garlic => 1.clove,
:soy_sauce => 2.tbsp,
:eggs => 2,

# use whatever vegetables you like here,
# this is a list of suggestions
:corn => 0.5.cups,
:peas => 0.5.cups,
:carrots => 1,
:snow_peas => 1.cup
}

if you.like? :garlic, :a_lot
ingredients[:garlic] += 1.clove
end

if not you.have? :fresh_ginger
ingredients[:ginger_powder] = 2.tsp
else
ingredients[:ginger] = 1.tsp
end

you.make :white_rice

you.chop :garlic, :finely or you.press :garlic
you.chop :ginger, :finely if you.have? :fresh_ginger

pan << :olive_oil << :garlic << :ginger << :soy_sauce
pan.element.set_heat :medium_low

you.wait 1.minute

while pot.contains? :rice
pan << pot.remove(:rice, :amount => 1.wooden_spoonful)
you.stir
end

pan << :vegetables

eggs.each do |egg|
pan << egg
you.stir
end

you.wait until egg.cooked

you.eat

Sunday, January 17, 2010

Shepherd's Pie

require 'mashed_potatoes'

ingredients = {
:mashed_potatoes => 1.recipe, # do this exactly like in the other recipe
:ground_beef => 0.5.pounds,

# for the vegetables, use whichever ones you want
# these are the ones I like
:corn => 1.cup,
:carrots => 1,
:peas => 1.cup,

:worcestershire_sauce => 2.tbsp,
:chili_powder => 2.tbsp,
:paprika => 1.dash,
:cheese => you.decide,
}

you.peel :carrot
you.slice :carrot, :into => :small_pieces

pan << :ground_beef << :worcestershire_sauce << :chili_powder << :carrot << :peas << :corn
pan.element.set_heat :medium

class Meat
def cooked?
not self.red?
end
end

until meat.cooked?
you.stir :occasionally, :with => :wooden_spoon
end

casserole_dish << :meat_mixture

casserole_dish << :mashed_potatoes
you.spread :mashed_potatoes, :evenly

casserole_dish << :paprika

you.grate :cheese
casserole_dish << :grated_cheese

if not food.hot?
oven.turn_on 150 # doesn't need a very high heat
oven << casserole_dish until food.hot?
end

you.eat

Saturday, January 16, 2010

Hash Browns

ingredients = {
:potatoes => 3,
(:olive_oil or :vegetable_oil or :butter) => 3.tbsp,
:chili_powder => you.decide, # I like to use a fair bit of chili powder,
# but it is slightly spicy so you may not
:oregano => you.decide,
:salt => you.decide
}

unless you.like? :potato_skins
you.peel :potatoes
end

you.slice :potatoes, :into => 1.cm.cubes

pan << :oil
pan.element.set_heat :medium

you.wait 1.minute

pan << :sliced_potatoes

you.stir until potatoes.slightly_coated?

pan << :chili_power << :oregano << :salt

10.minutes do
# you have to stir constantly or the potatoes get stuck to the
# bottom of the pan, or they might burn
you.stir :constantly, :with => :wooden_spoon

break if potatoes.cooked?
end

you.wait until not potatoes.hot?
you.eat

Friday, January 15, 2010

Mashed Potatoes

ingredients = {
:potatoes => 6,
:milk => 1.cup,
:butter => 2.tbsp
}

unless you.like :potato_skins
you.peel :potatoes
end

you.cut :potatoes, :small_pieces

pot << water
pot.element.set_heat :high

if pot.boiling
pot << :cut_potatoes
end

class Potato
def soft?
you.poke :potato, :with => :fork and potato.falls_off? :fork
end
end

you.wait until potatoes.soft? # usually about 20 minutes

strainer << pot.contents
pot << strainer.contents << :milk << :butter

you.mash :potatoes, :with => (:fork or :potato_masher)
you.eat

Thursday, January 14, 2010

Spaghetti with Basil

ingredients = {
:spaghetti => 1.package,
:basil => 4.tbsp,
:garlic_salt => 2.tsp,
:parmesan => 1.tbsp,
:olive_oil => 2.tbsp
}

pot << :water
pot.element.set_heat :high

if pot.boiling?
pot << :spaghetti
pot.element.set_heat :medium
end

until pot.spaghetti == :soft
you.stir :occasionally
end

strainer.contents = pot.empty
pot.contents = strainer.empty

pot << :everything_else

you.stir
you.eat

Wednesday, January 13, 2010

Mayonnaise

require 'food_processor'

ingredients = {
# some recipes say to only use the egg yolk for mayo,
# I find it works well either way and it's easier to
# leave the white in
:eggs => 1,

# you don't have to use olive oil, you can use vegetable
# oil if you want instead
:olive_oil => 1.cup,
:salt => you.decide,
:pepper => you.decide
}

# NOTE: The lemon taste can be very strong
if you.like? :lemon
ingredients[:lemon_juice] = 2.tbsp
else
ingredients[:water] = 1.tbsp
ingredients[:lemon_juice] = 1.tbsp
end

if you.like? :mustard
ingredients[:dry_mustard] = 1.tsp
end

tall_plastic_dish << :all

begin
# put the food processor at the bottom with the yolk
# and stir _slowly_
food_processor.stir :very_slowly
rescue DidNotStirSlowlyException
me.smack you
you.restart
end

you.eat :with => :something

Tuesday, January 12, 2010

Hummus

require 'food_processor'

ingredients = {
:chick_peas => 1.can,
:lemons => 1,
:olive_oil => 2.tbsp,
:garlic => 2.cloves
}

you.chop :garlic, :finely or you.press :garlic
you.juice :lemon

bowl << :all
food_processor.stir until bowl.contents == :creamy

if bowl.contents == :too_dry
bowl << :more_olive_oil
food_processor.stir
end

you.eat :with => :pita_bread