What does the 'Everything is an object' mental model mean in Ruby?
In Ruby, everything you work with is an object. Numbers, strings, methods, and even classes themselves are objects. This means they all have methods and properties you can use.
Click to reveal answer
beginner
How can you call a method on a number in Ruby?
Since numbers are objects, you can call methods on them like this: 5.next which returns 6.
Click to reveal answer
intermediate
Are classes in Ruby objects too?
Yes! Classes in Ruby are objects of the class Class. This means you can call methods on classes themselves.
Click to reveal answer
beginner
What is the class of a string like "hello" in Ruby?
The class of "hello" is String. You can check this by calling <code>"hello".class</code> which returns <code>String</code>.
Click to reveal answer
intermediate
Why is the 'Everything is an object' model helpful?
It helps you understand that you can use methods on any value, making Ruby very consistent and flexible. It also means you can extend or change behavior by adding methods to objects.
Click to reveal answer
In Ruby, what is the class of the number 10?
AInteger
BNumber
CFixnum
DObject
✗ Incorrect
In modern Ruby, 10 is an Integer object. Fixnum was used in older versions but now Integer covers all whole numbers.
Which of these is NOT true about Ruby's 'Everything is an object' model?
AClasses themselves are objects.
BOnly strings and arrays are objects.
CYou can call methods on numbers.
DEven true and false are objects.
✗ Incorrect
In Ruby, everything is an object, not just strings and arrays.
What will "hello".class return in Ruby?
AClass
BObject
CText
DString
✗ Incorrect
The class of a string literal is String.
Which class do all Ruby classes belong to?
AClass
BObject
CModule
DString
✗ Incorrect
All classes in Ruby are instances of the Class class.
What does calling 5.next return in Ruby?
A7
B5
C6
DError
✗ Incorrect
Since 5 is an object, calling the next method returns the next integer, 6.
Explain the 'Everything is an object' mental model in Ruby and give two examples.
Think about how you can call methods on numbers and strings.
You got /3 concepts.
Why does Ruby treat classes as objects? How does this affect how you use classes?
Consider how classes themselves can have methods.
You got /3 concepts.
Practice
(1/5)
1. In Ruby, which of the following is not considered an object?
easy
A. Numbers like 5
B. Strings like "hello"
C. Booleans like true
D. Variables themselves
Solution
Step 1: Understand Ruby's object model
In Ruby, everything you work with directly, like numbers, strings, and booleans, are objects.
Step 2: Differentiate variables from objects
Variables are names or references pointing to objects, but they themselves are not objects.
Final Answer:
Variables themselves are not objects -> Option D
Quick Check:
Variables are references, not objects [OK]
Hint: Remember: variables point to objects, they aren't objects themselves [OK]
Common Mistakes:
Thinking variables are objects
Confusing object instances with variable names
Assuming booleans are not objects
2. Which of the following is the correct way to call the method upcase on a string object name in Ruby?
easy
A. name.upcase
B. upcase(name)
C. name->upcase()
D. upcase.name()
Solution
Step 1: Recall Ruby method call syntax
In Ruby, methods are called on objects using dot notation: object.method.
Step 2: Apply to the string object
For the string variable name, calling upcase is done as name.upcase.
Final Answer:
name.upcase -> Option A
Quick Check:
Method call syntax = object.method [OK]
Hint: Use dot (.) to call methods on objects in Ruby [OK]
Common Mistakes:
Using function-style calls like upcase(name)
Using arrow (->) notation from other languages
Placing method after dot incorrectly
3. What will be the output of the following Ruby code?
num = 10
puts num.class
medium
A. Integer
B. Fixnum
C. Numeric
D. Object
Solution
Step 1: Understand the class method
The class method returns the class of the object it is called on.
Step 2: Identify the class of the number 10 in Ruby 3.12+
In modern Ruby versions, integers are instances of the Integer class (Fixnum and Bignum were unified).
Final Answer:
Integer -> Option A
Quick Check:
10.class = Integer [OK]
Hint: Use .class to find an object's type in Ruby [OK]
Common Mistakes:
Choosing Fixnum (old Ruby versions)
Confusing Numeric with Integer
Thinking class returns Object always
4. The following Ruby code prints nothing. What is the problem?
text = "HELLO"
puts text.upcase!
medium
A. Missing parentheses for method call
B. Using upcase! on a string literal causes error
C. The method upcase! returns nil if no changes made
D. Strings are not objects, so methods can't be called
Solution
Step 1: Understand upcase! behavior
The upcase! method modifies the string in place and returns nil if no changes were made.
Step 2: Analyze the code's output
Since "HELLO" is uppercase, upcase! makes no changes and returns nil, so puts prints nothing.
Step 3: Identify the error cause
The return value nil is printed when no mutation occurs.
Final Answer:
upcase! returns nil if no changes made -> Option C
Quick Check:
Bang methods can return nil if no change [OK]
Hint: Bang (!) methods may return nil if no change happens [OK]
Common Mistakes:
Thinking bang methods always return a string
Assuming strings are not objects
Missing that upcase! modifies in place
5. Given the code below, what will be the output?
class NumberWrapper
def initialize(value)
@value = value
end
def to_s
"Value is: #{@value.to_s}"
end
end
num = NumberWrapper.new(42)
puts num.to_s
hard
A. 42
B. Value is: 42
C. Value is: @value
D. Error: undefined method to_s
Solution
Step 1: Understand the class and method definitions
The class NumberWrapper stores a value and defines a to_s method that returns a string including the value.
Step 2: Analyze the to_s method call
The method returns the string "Value is: " plus the string version of @value, which is 42.
Step 3: Check the output of puts num.to_s
It prints the string returned by to_s, which is "Value is: 42".
Final Answer:
Value is: 42 -> Option B
Quick Check:
Custom to_s returns formatted string [OK]
Hint: to_s returns string representation of any object [OK]
Common Mistakes:
Expecting just the number without text
Confusing instance variable with string literal
Thinking to_s is undefined
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.