Skip to content

Instantly share code, notes, and snippets.

@VladHurma
Created November 23, 2018 22:24
Show Gist options
  • Save VladHurma/116d40a220b7dad9bf77d79b124144f5 to your computer and use it in GitHub Desktop.
Save VladHurma/116d40a220b7dad9bf77d79b124144f5 to your computer and use it in GitHub Desktop.
class Sort_by_words_length
def initialize
@words_array = []
end
def self.run
new.run
end
def run
ask_user_for_string
sort_by_size
show_user_sorted_words
end
private
def ask_user_for_string
puts "Put here string to sort it by length of word!"
@string = gets.strip
end
def sort_by_size
@words_array = @string.split(' ').sort_by {|word| word.length}
end
def show_user_sorted_words
print "#{@words_array}\n"
end
end
Sort_by_words_length.run
@aya-soft
Copy link

aya-soft commented Nov 28, 2018

  1. отступы 2 пробела везде
  2. что делает split вызванный без аргументов?
  3. как это короче записать? .sort_by {|word| word.length}
  4. опять print "#{@words_array}\n", как сделать без "\n"
  5. лучше создавать attr_reader даже для внутренних целей и использовать не @words_array, а просто words_array

@VladHurma
Copy link
Author

VladHurma commented Nov 28, 2018

1. отступы 2 пробела везде

2. что делает split вызванный без аргументов?

3. как это короче записать? .sort_by {|word| word.length}

4. опять print "#{@words_array}\n", как сделать без "\n"

5. лучше создавать attr_reader даже для внутренних целей и использовать не @words_array, а просто words_array
  1. Превращает всю строку в элемент массива
  2. sort_by(&:length), &: - передает каждый элемент массива и применяет к нему метод length(не даром ведь создание метода возвращает символ, к которому по метапроге можно обратиться)
  3. Торможу, не понимаю как сделать с writer

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