У меня была рабочая логика для динамической печати пирамиды и квадрата, принимая количество строк из терминала. Я столкнулся с ошибкой после включения "module, classes и begin-end block".
module PatternPrinting
class Operation
def input
puts 'Enter the number of rows:'
rows = Integer(gets.chomp)
raise StandardError if rows <= 0 || rows > 10
pyramid(rows)
square(rows)
rescue StandardError
raise StandardError, 'Invalid Input, the entered value exceeds is not between 1-10 '
end
def pyramid(rows)
rows.times do |n|
print ' ' * (rows - n)
puts '*' * (2 * n + 1)
end
end
puts "Pyramid Rows: #{pyramid(rows)}"
def square(rows)
rows.times do |_n|
puts '*' * 10
end
end
puts "Sqaure Rows: #{square(rows)}"
end
end
begin
res = PatternPrinting::Operation.new
res.input
end
Но я сталкиваюсь с ошибкой
pattern.rb:20:in `<class:Operation>': undefined local variable or method `rows' for PatternPrinting::Operation:Class (NameEr
ror)
from ./pattern.rb:3:in `<module:PatternPrinting>'
from ./pattern.rb:2:in `<main>'