We want something like this:
class LakeSuperior
include LakeDSL
lake_name 'Lake Superior'
fish 'trout'
fish 'northern pike'
end
And we have to write boilerplate like this:
module LakeDSL
# dump code
def lake_name(name = nil)
return @lake_name if name.nil?
@lake_name = name
end
# super annoying
def fish(name = nil)
return @fishes if name.nil?
@fishes ||= []
@fishes << name
end
end