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.

Revisions

  1. codeschool-courses created this gist Oct 13, 2012.
    23 changes: 23 additions & 0 deletions game_dsl.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    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