Bird
Raised Fist0
Rubyprogramming~10 mins

Method naming conventions (? and ! suffixes) 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 define a method that checks if a number is even using the correct naming convention.

Ruby
def even[1](number)
  number % 2 == 0
end
Drag options to blanks, or click blank then click option'
A_test
B!
C_check
D?
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!' instead of '?' for a method that returns a boolean.
Adding arbitrary suffixes like '_check' or '_test' which are not Ruby conventions.
2fill in blank
medium

Complete the code to define a method that modifies a string in place, following Ruby naming conventions.

Ruby
def capitalize[1](str)
  str.capitalize!
end
Drag options to blanks, or click blank then click option'
A!
B?
C_inplace
D_modify
Attempts:
3 left
💡 Hint
Common Mistakes
Using '?' instead of '!' for methods that modify objects.
Adding suffixes like '_inplace' which are not standard Ruby conventions.
3fill in blank
hard

Fix the error in the method name to follow Ruby conventions for a method that returns a boolean.

Ruby
def valid_email[1](email)
  email.include?('@')
end
Drag options to blanks, or click blank then click option'
A!
B_check
C?
D_valid
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!' for boolean methods.
Using arbitrary suffixes like '_check' or '_valid'.
4fill in blank
hard

Complete the code to define a method that modifies an array in place and returns a boolean indicating success.

Ruby
def add_element[1](array, element)
  array << element
  true
end
Drag options to blanks, or click blank then click option'
A!
B?
D_modify
Attempts:
3 left
💡 Hint
Common Mistakes
Adding '?' after the parameter list which is invalid syntax.
Not using '!' for methods that modify objects.
5fill in blank
hard

Fill both blanks to define a method that checks if a string is empty and modifies it if not, following Ruby conventions.

Ruby
def process_string[1](str)
  if str.empty[2]
    false
  else
    str.upcase!
    true
  end
end
Drag options to blanks, or click blank then click option'
A?
B!
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!' instead of '?' for boolean methods.
Adding suffixes after the parameter list which is invalid.

Practice

(1/5)
1. Which method name follows Ruby convention for a method that returns a boolean value?
? is used at the end of method names that return true or false.
easy
A. save
B. update!
C. calculate
D. valid?

Solution

  1. Step 1: Understand the meaning of ? suffix

    In Ruby, methods ending with ? return true or false, indicating a boolean check.
  2. Step 2: Identify the method that returns a boolean

    Among the options, valid? clearly suggests a boolean check, while others do not.
  3. Final Answer:

    valid? -> Option D
  4. Quick Check:

    Boolean methods end with ? = valid? [OK]
Hint: Boolean methods end with ? to show true/false result [OK]
Common Mistakes:
  • Confusing ! with ? suffix
  • Using ? for methods that modify objects
  • Not using ? for boolean-returning methods
2. Which of the following method names is correctly written to indicate it modifies the object in Ruby?
easy
A. delete
B. delete!
C. delete?
D. deleted

Solution

  1. Step 1: Understand the meaning of ! suffix

    In Ruby, methods ending with ! usually modify the object or perform a 'dangerous' action.
  2. Step 2: Identify the method that modifies the object

    delete! clearly indicates modification, while delete may not, and delete? suggests a boolean check.
  3. Final Answer:

    delete! -> Option B
  4. Quick Check:

    Modification methods end with ! = delete! [OK]
Hint: Use ! for methods that change the object [OK]
Common Mistakes:
  • Using ? instead of ! for modifying methods
  • Not adding ! for dangerous methods
  • Confusing method names without suffixes
3. What will be the output of this Ruby code?
class User
  def active?
    true
  end

  def deactivate!
    @active = false
    "User deactivated"
  end
end

user = User.new
puts user.active?
puts user.deactivate!
puts user.active?
medium
A. true User deactivated true
B. true User deactivated false
C. false User deactivated false
D. true User deactivated nil

Solution

  1. Step 1: Analyze the active? method

    This method always returns true because it returns the literal true without checking any variable.
  2. Step 2: Analyze the deactivate! method and second active? call

    deactivate! sets @active = false but active? does not use @active, so it still returns true.
  3. Final Answer:

    true User deactivated true -> Option A
  4. Quick Check:

    active? returns true always = true User deactivated true [OK]
Hint: Check if boolean method uses instance variables or fixed return [OK]
Common Mistakes:
  • Assuming deactivate! changes active? output
  • Confusing method side effects
  • Ignoring method return values
4. Identify the error in this Ruby method definition:
def save?
  # saves the object
  puts "Saving..."
  true
end

What is wrong with this method name?
medium
A. Method name cannot contain ?
B. Method should end with ! instead of ?
C. Method ends with ? but performs an action, not a boolean check
D. No error, method is correct

Solution

  1. Step 1: Understand the meaning of ? suffix

    Methods ending with ? should return true or false and not perform side effects like saving.
  2. Step 2: Analyze the method behavior

    This method prints "Saving..." which is a side effect, so it should not end with ?.
  3. Final Answer:

    Method ends with ? but performs an action, not a boolean check -> Option C
  4. Quick Check:

    Methods with ? should not have side effects [OK]
Hint: ? means boolean check, not side effects [OK]
Common Mistakes:
  • Using ? for methods that change state
  • Ignoring method side effects
  • Confusing ! and ? suffix meanings
5. You want to write a Ruby method that checks if a string is empty and also a method that clears the string content. Which method names follow Ruby conventions?
hard
A. empty? and clear!
B. empty! and clear?
C. empty and clear!
D. empty? and clear

Solution

  1. Step 1: Identify boolean check method

    The method checking if a string is empty should return true or false, so it should end with ?, e.g., empty?.
  2. Step 2: Identify modifying method

    The method that clears the string modifies it, so it should end with !, e.g., clear!.
  3. Final Answer:

    empty? and clear! -> Option A
  4. Quick Check:

    Boolean check ends with ?; modifying method ends with ! [OK]
Hint: Boolean methods end with ?; modifying methods end with ! [OK]
Common Mistakes:
  • Swapping ? and ! suffixes
  • Not using suffixes for clarity
  • Using no suffix for modifying methods
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