Skip to content

Instantly share code, notes, and snippets.

@codeschool-courses
Created October 13, 2012 20:39
Show Gist options
  • Save codeschool-courses/3886073 to your computer and use it in GitHub Desktop.
Save codeschool-courses/3886073 to your computer and use it in GitHub Desktop.
RubyBits II 6-5 - game_dsl.rb
LIBRARY = Library.new
def add_game(name, system = nil, year = nil, &block)
game = Game.new(name)
game.system(system) if system
game.year(year) if year
game.instance_eval(&block) if block_given?
LIBRARY.add_game(game)
end
def with_game(*names, &block)
names.each do |name|
game = LIBRARY.find_by_name(name)
game.instance_eval(&block)
end
end
def with_games_tagged(tag, &block)
games = LIBRARY.find_by_tag(tag)
games.each do |game|
game.instance_eval(&block)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment