Skip to content

Instantly share code, notes, and snippets.

@VladHurma
Last active November 28, 2018 22:08
Show Gist options
  • Save VladHurma/52c1fb0d29d3614d974fba2cf19d5b02 to your computer and use it in GitHub Desktop.
Save VladHurma/52c1fb0d29d3614d974fba2cf19d5b02 to your computer and use it in GitHub Desktop.
# frozen_string_literal: true
class Minimalize_all_positive_numbers
def initialize
@numbers = []
end
def self.run
new.run
end
def run
set_numbers
show_array_before_refactoring
min = find_min_element
refactor_array(min)
show_refactored_array_to_user
end
private
def set_numbers
(0..9).each do |i|
@numbers[i] = rand(-5..5)
end
end
def show_array_before_refactoring
print "#{@numbers}\n"
end
def find_min_element
@numbers.min
end
def refactor_array(min)
@numbers.map! do |num|
@numbers[@numbers.index(num)] = min if num > 0 else num
end
end
def show_refactored_array_to_user
print "#{@numbers}\n"
end
end
Minimalize_all_positive_numbers.run
@VladHurma
Copy link
Author

1. Многократно вычисляется @numbers.min

2. Мы фактически строим из одного массива другой, какой метод-итератор для этого есть в Руби?

map

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