This is my collection of Exams, in the project called "exams". The main namespace for this project is: module Exams; end What are "exams" exactly and how did this project get started? I use this project to test my knowledge over various different topics, be it related to ruby, or biology or chemistry. For this purpose, I have defined a module in Ruby, which contains several constants - most importantly, questions that have a definite answer. The current name of that top-module constant is module PruefungsFragen. If I guess the answer to a question correctly so, then a trailing  is appended to that question (issued through the script called solved.rb), which will mark said question as "solved". When a question is marked as "solved", it will no longer be asked again, logically. After all this is a trainer-type project, we train our brains to become better. In other words, we toggle on/off per question via a trailing  to a line in that file. Note that I can not distribute this .rb file that contains all these questions because it is already 1.7 MB in size alone, having about 17.000 questions registered. 1.7 MB would make the gem really way too big, and it would not be very useful for other people, since these questions are for my own use case, not for the use case of other people (since you don't study what I do right?). You can, however had, download it if you really want to - the URL is at: wget http://shevegen.square7.ch/pruefungs_fragen.rb Don't forget to modify the yaml file file_for_exam_questions.yml and specify the location (the path) to this .rb file. The purpose of this gem here is to distribute the code that I do use to load up and interconnect the various different components, related to exams. The above .rb file serves as the "knowledge reference base". I suggest that you build up your own .rb file instead. For this purpose, there is a class called Exams::LoadDataset which will load the dataset. This class will also provide a convenience menu, which you may have to modify in order to assign towards your own questions. As described above, you can specify to load your own dataset through a yaml file which contains the path to the .rb file in question - see the documentation for this, or just look at the yaml/ subdirectory, which contains the user-togglable settings. If other people would like to use it this project, I am open for suggestions on how to make it more flexible. Otherwise, I will just keep it here as it is, as I do require it in a few of my other projects. And if nobody else uses it then this is also fine because I am the number one user here anyway. :) If you have specific suggestions to make this gem more useful for others, please drop me an email at: firstname.lastname@example.org Thank you.