print 'Type number: '
first_number = gets.strip.to_i
print 'Type operation: '
operation = gets.strip
if %w[+ - * / ** %].include? operation
print 'Type second number: '
second_number = gets.strip.to_i
puts first_number.send(operation, second_number)
elsif %w[sin sqrt].include? operation
puts Math.send(operation, first_number)
else
puts 'error'
end
Math.send(operation, first_number)
first_number.send(operation, second_number)
require
позволяет подтягивать код из других файлов/библиотек. io/console
входит в стандартную библиотеку ruby. И что бы её использовать достаточно прописать require, и ничего дополнительно устанавливать не надо. noecho
это один из методов этой библиотеки. STDIN.noecho(&:gets)
выполнит gets как обычно, но при этом отключит вывод данных обратно в терминал.self
не нужен. И если где-то будет еще локальная переменная dir
, то могут возникнуть проблемы.class LogParse
attr_accessor :dir
def initialize
@dir = 'test'
end
def some_method
puts dir
end
end
LogParse.new.some_method
def ask(string)
puts string
print '>'
@answer = gets.chomp
end
ask 'What movie do you want to rate?'
puts @answer
if @answer == 'porn'
ask 'What do you name?'
puts @answer
end
def ask(string)
puts string
print '>'
gets.chomp
end
answer1 = ask 'What movie do you want to rate?'
puts answer1
if answer1 == 'porn'
answer2 = ask 'What do you name?'
puts answer2
end