Bird
Raised Fist0
Rubyprogramming~10 mins

Ruby style guide essentials - 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 named greet.

Ruby
def [1](name)
  puts "Hello, #{name}!"
end
Drag options to blanks, or click blank then click option'
Ahello
Bsay_hello
Cgreet
Dgreeting
Attempts:
3 left
💡 Hint
Common Mistakes
Using camelCase instead of snake_case for method names.
Using a method name different from 'greet'.
2fill in blank
medium

Complete the code to create a symbol for the key :age.

Ruby
person = { [1] => 30 }
Drag options to blanks, or click blank then click option'
A'age'
B"age"
Cage
D:age
Attempts:
3 left
💡 Hint
Common Mistakes
Using strings instead of symbols for hash keys.
Omitting the colon before the symbol name.
3fill in blank
hard

Fix the error in the code by completing the conditional statement.

Ruby
if number [1] 10
  puts "Number is less than 10"
end
Drag options to blanks, or click blank then click option'
A=>
B<
C==
D=>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using assignment operator => instead of comparison.
Using equality operator == which checks for equality, not less than.
4fill in blank
hard

Fill both blanks to create a loop that prints numbers 1 to 5.

Ruby
(1[1]5).each do |i|
  puts i
[2]
Drag options to blanks, or click blank then click option'
A..
Bend
Cuntil
Dfor
Attempts:
3 left
💡 Hint
Common Mistakes
Using until instead of a range.
Forgetting to close the block with end.
5fill in blank
hard

Fill all three blanks to create a hash with keys as symbols and values as strings.

Ruby
person = { [1]: [2], [3]: "Developer" }
Drag options to blanks, or click blank then click option'
Aname
B"Alice"
Cage
D"30"
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around keys.
Not quoting string values.

Practice

(1/5)
1. According to the Ruby style guide essentials, which naming convention should you use for method names?
easy
A. snake_case
B. CamelCase
C. kebab-case
D. PascalCase

Solution

  1. Step 1: Understand method naming conventions

    Ruby style guide recommends using snake_case for method names to improve readability.
  2. Step 2: Compare options with style guide

    CamelCase and PascalCase are used for classes and modules, not methods.
  3. Final Answer:

    snake_case -> Option A
  4. Quick Check:

    Method names use snake_case [OK]
Hint: Methods and variables use snake_case, classes use CamelCase [OK]
Common Mistakes:
  • Using CamelCase for method names
  • Using kebab-case which is invalid in Ruby
  • Confusing class naming with method naming
2. Which of the following is the correct way to indent Ruby code according to the style guide?
easy
A. 2 spaces
B. 4 spaces
C. 1 tab
D. No indentation

Solution

  1. Step 1: Recall indentation rules

    The Ruby style guide specifies using 2 spaces for indentation to keep code clean and consistent.
  2. Step 2: Evaluate options

    4 spaces and tabs are common in other languages but not recommended in Ruby style guide.
  3. Final Answer:

    2 spaces -> Option A
  4. Quick Check:

    Indent with 2 spaces [OK]
Hint: Always indent Ruby code with 2 spaces, never tabs [OK]
Common Mistakes:
  • Using tabs instead of spaces
  • Using 4 spaces like in Python or JavaScript
  • No indentation causing unreadable code
3. What will be the output of the following Ruby code?
class MyClass
  def greet
    name = 'Alice'
    puts "Hello, #{name}!"
  end
end

obj = MyClass.new
obj.greet
medium
A. SyntaxError
B. Hello, #{name}!
C. Hello, name!
D. Hello, Alice!

Solution

  1. Step 1: Understand string interpolation

    Double quotes allow #{name} to be replaced by the variable's value, which is 'Alice'.
  2. Step 2: Trace method call and output

    Calling greet prints "Hello, Alice!" to the console.
  3. Final Answer:

    Hello, Alice! -> Option D
  4. Quick Check:

    Double quotes enable interpolation = Hello, Alice! [OK]
Hint: Double quotes allow #{var} interpolation, single quotes do not [OK]
Common Mistakes:
  • Using single quotes expecting interpolation
  • Confusing variable name with string literal
  • Expecting syntax error from interpolation
4. Identify the style error in the following Ruby code snippet:
class my_class
  def say_hello
    puts 'Hello world'
  end
end
medium
A. Class name should be snake_case
B. Method name should be CamelCase
C. Class name should be CamelCase
D. String should use double quotes

Solution

  1. Step 1: Check class naming conventions

    Ruby style guide requires class names to use CamelCase, not snake_case.
  2. Step 2: Verify method and string style

    Method name is correctly snake_case; single quotes are allowed if no interpolation needed.
  3. Final Answer:

    Class name should be CamelCase -> Option C
  4. Quick Check:

    Classes use CamelCase [OK]
Hint: Classes and modules use CamelCase, not snake_case [OK]
Common Mistakes:
  • Using snake_case for class names
  • Changing method names to CamelCase incorrectly
  • Forcing double quotes when not needed
5. You want to define a Ruby method that returns a greeting with a name variable. Which style is best according to the Ruby style guide essentials?
def greetUser(name)
  return 'Hello, ' + name + '!'
end
hard
A. def greetUser(name) "Hello, #{name}!" end
B. def greet_user(name) "Hello, #{name}!" end
C. def greet_user(name) 'Hello, ' + name + '!' end
D. def greetUser(name) 'Hello, ' + name + '!' end

Solution

  1. Step 1: Apply method naming conventions

    Method names should use snake_case, so greet_user is correct.
  2. Step 2: Use string interpolation with double quotes

    Double quotes allow cleaner string interpolation instead of concatenation.
  3. Final Answer:

    def greet_user(name) "Hello, #{name}!" end -> Option B
  4. Quick Check:

    snake_case + interpolation = def greet_user(name) "Hello, #{name}!" end [OK]
Hint: Use snake_case for methods and double quotes for interpolation [OK]
Common Mistakes:
  • Using CamelCase for method names
  • Using single quotes with interpolation expecting it to work
  • Concatenating strings instead of interpolation
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