Skip to content

Instantly share code, notes, and snippets.

@VladHurma
Created November 23, 2018 22:25
Show Gist options
  • Save VladHurma/408704cc913a59089340304de9bc9cc0 to your computer and use it in GitHub Desktop.
Save VladHurma/408704cc913a59089340304de9bc9cc0 to your computer and use it in GitHub Desktop.
class If_word_palindrome
def initialize
@checkup = false
end
def self.run
new.run
end
def run
ask_user_for_word
check_word
tell_user_about_palindrome
end
private
def ask_user_for_word
puts "Enter your word for checking, if this word is palindrome!"
@word = gets.strip
end
def check_word
if @word == @word.reverse
@checkup = true
end
end
def tell_user_about_palindrome
if @checkup == true
puts "#{@word} is palindrome!"
else
puts "#{@word} isn't palindrome!"
end
end
end
If_word_palindrome.run
@aya-soft
Copy link

Этот метод кажется бесполезным

	def check_word
		if @word == @word.reverse
			@checkup = true
		end
	end

Он вычисляет булевское значение и его же устанавливает в переменную экземпляра
Как от него избавиться?

@aya-soft
Copy link

И еще одно задание:
Как добавить метод palindrom? прямо в класс String?
Какое будет решение в этом случае?

@VladHurma
Copy link
Author

VladHurma commented Nov 28, 2018

Этот метод кажется бесполезным

	def check_word
		if @word == @word.reverse
			@checkup = true
		end
	end

Он вычисляет булевское значение и его же устанавливает в переменную экземпляра
Как от него избавиться?

Либо перенести проверку в вывод, либо вызывать функцию tell_user и передавать is или isn't
Ну или просто

def check_word
 true if @word == @word.reverse
end
if check_word
 puts "palindrome"
else
 puts "isn't palindrome"
end

@VladHurma
Copy link
Author

VladHurma commented Nov 28, 2018

И еще одно задание:
Как добавить метод palindrom? прямо в класс String?
Какое будет решение в этом случае?

Ну либо

String.class_eval do
 def palindrome?
   # body
 end
end

Либо

@user_input = String.new
def @user_input.palindrome?
 #body
end

Тогда мы сделаем, если я не ошибаюсь

@user_input = gets.strip
@user_input.palindrome?

И будет все работать

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment