0
0
Rubyprogramming~5 mins

Class.new for dynamic class creation in Ruby - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What does Class.new do in Ruby?
<p><code>Class.new</code> creates a new class dynamically at runtime instead of defining it with the <code>class</code> keyword.</p>
Click to reveal answer
beginner
How can you add methods to a class created with <code>Class.new</code>?
<p>You can pass a block to <code>Class.new</code> and define methods inside that block, just like inside a normal class definition.</p>
Click to reveal answer
intermediate
What is the difference between Class.new and the usual class keyword?
<p><code>Class.new</code> creates a class object dynamically and returns it, while <code>class</code> defines a class with a fixed name in the code.</p>
Click to reveal answer
beginner
How do you create an instance of a class created with <code>Class.new</code>?

Assign the result of Class.new to a variable, then call .new on that variable to create an instance.

Click to reveal answer
intermediate
Can <code>Class.new</code> take a superclass as an argument? If yes, how?
<p>Yes. You can pass a superclass as an argument to <code>Class.new</code> like <code>Class.new(Superclass)</code> to create a subclass dynamically.</p>
Click to reveal answer
What does Class.new return in Ruby?
AA new class object
BAn instance of a class
CA string with class name
DA method definition
How do you define methods inside a class created with Class.new?
ABy calling <code>def</code> outside the block
BBy passing a block to <code>Class.new</code> and defining methods inside it
CBy using <code>module</code> keyword
DYou cannot define methods dynamically
Which of the following is a correct way to create a subclass dynamically?
AClass.new()
BSubclass.new(Superclass)
Cclass Subclass < Superclass end
DClass.new(Superclass)
How do you create an instance of a class created with klass = Class.new?
Aklass.new
Bnew klass()
CClass.new.new
Dklass.create()
What is a practical use of Class.new?
ADefining global variables
BReplacing all class definitions
CCreating classes on the fly when you don’t know the name beforehand
DCreating modules
Explain how Class.new can be used to create a class dynamically and add methods to it.
Think about how you define a normal class and how that translates to using Class.new
You got /4 concepts.
    Describe how inheritance works with Class.new when creating subclasses dynamically.
    Consider how you normally write <code>class Subclass < Superclass</code> and how Class.new can do the same
    You got /3 concepts.