Last active
March 29, 2016 23:33
-
-
Save gorborukov/4292675032f3556dbdc7cbecc42c83a3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def split_name(name) # Метод для разделения полного ФИО на отдельные объекты | |
data = name.split(' ') # Превращаем полное имя в массив | |
result = { # Помещаем разделенные данные в хэш | |
lastname: data[0], | |
firstname: data[1], | |
secondname: data.drop(2).map(&:inspect).join(' ').gsub('"', '') # Оставляем в secondname ячейки массива после второй, убираем лишние символы | |
} | |
return result.map{|i,j|"#{i}: #{j}\n"}.join(' ') # Возврат хэша в читабельном виде, убираем лишние символы и т.д. | |
end | |
def print_name(name) # Метод для вывода имени | |
if name.kind_of?(Array) # Если введено полное имя раздельно | |
puts name.map(&:inspect).join(' ').gsub('"', '') # Выводим в одну строку | |
puts 'lastname: ' + name[0], | |
"firstname: " + name[1], | |
"secondname: " + name.drop(2).map(&:inspect).join(' ').gsub('"', '') #Выводим раздельно | |
else # Если введено полное имя | |
puts "fullname: " + name + "\n" + split_name(name) # Выводим в одну строку и раздельно | |
end | |
end | |
# Простейшая логика для передачи параметров в командной строке | |
# ruby name.rb "f" "Иванов Иван Иванович" – обработка полного ФИО | |
# ruby name.rb "s" "Иванов" "Иван" "Иванович" – обработка фамилиии имени и отчества раздельно | |
if ARGV[0] == "f" && ARGV[1].split.length > 2 # Если ФИО передано полностью и содержит больше двух слов | |
print_name(ARGV[1]) | |
elsif ARGV[0] == "s" && ARGV.length > 2 # Если ФИО передано раздельно и содержит больше двух слов | |
print_name(ARGV.drop(1)) # Помещаем все кроме первого аргумента (флага) в массив и передаем методу | |
else | |
puts "Incorrect input data" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment