Bird
Raised Fist0
Rubyprogramming~10 mins

Everything is an object mental model in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the class of the number 10.

Ruby
puts 10.[1]
Drag options to blanks, or click blank then click option'
Aclass
Btype
Ckind
Dobject
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'type' instead of 'class' causes an error.
2fill in blank
medium

Complete the code to call the upcase method on the string 'hello'.

Ruby
puts 'hello'.[1]
Drag options to blanks, or click blank then click option'
Adowncase
Bupcase
Ccapitalize
Dreverse
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'capitalize' only changes the first letter.
3fill in blank
hard

Fix the error in the code to check if 5 is an object.

Ruby
puts 5.[1](Object)
Drag options to blanks, or click blank then click option'
Aobject?
Bis_object?
Cis_a?
Dinstance_of?
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'object?' or 'is_object?' are not valid Ruby methods.
4fill in blank
hard

Fill both blanks to create a hash where keys are strings and values are their lengths.

Ruby
lengths = ['cat', 'dog', 'bird'].each_with_object({}) { |word, h| h[[1]] = [2] }
Drag options to blanks, or click blank then click option'
Aword
Bword.length
Cword.size
Dword.count
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.size also works but is not the expected answer here.
5fill in blank
hard

Fill all three blanks to create a hash with uppercase keys and values greater than 3.

Ruby
result = ['apple', 'bat', 'cat', 'dog'].each_with_object({}) { |word, h| if [3]; h[[1]] = [2] end }
Drag options to blanks, or click blank then click option'
Aword.upcase
Bword
Cword.length > 3
Dword.size < 3
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.size < 3 filters the wrong words.

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

  1. Step 1: Understand Ruby's object model

    In Ruby, everything you work with directly, like numbers, strings, and booleans, are objects.
  2. Step 2: Differentiate variables from objects

    Variables are names or references pointing to objects, but they themselves are not objects.
  3. Final Answer:

    Variables themselves are not objects -> Option D
  4. 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

  1. Step 1: Recall Ruby method call syntax

    In Ruby, methods are called on objects using dot notation: object.method.
  2. Step 2: Apply to the string object

    For the string variable name, calling upcase is done as name.upcase.
  3. Final Answer:

    name.upcase -> Option A
  4. 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

  1. Step 1: Understand the class method

    The class method returns the class of the object it is called on.
  2. 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).
  3. Final Answer:

    Integer -> Option A
  4. 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

  1. Step 1: Understand upcase! behavior

    The upcase! method modifies the string in place and returns nil if no changes were made.
  2. Step 2: Analyze the code's output

    Since "HELLO" is uppercase, upcase! makes no changes and returns nil, so puts prints nothing.
  3. Step 3: Identify the error cause

    The return value nil is printed when no mutation occurs.
  4. Final Answer:

    upcase! returns nil if no changes made -> Option C
  5. 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

  1. 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.
  2. Step 2: Analyze the to_s method call

    The method returns the string "Value is: " plus the string version of @value, which is 42.
  3. Step 3: Check the output of puts num.to_s

    It prints the string returned by to_s, which is "Value is: 42".
  4. Final Answer:

    Value is: 42 -> Option B
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard