Class: FindMax::Services::FindMaxNumbers
- Inherits:
-
Object
- Object
- FindMax::Services::FindMaxNumbers
- Includes:
- Modules::Info
- Defined in:
- lib/find_max/services/find_max_numbers.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(count_max_numbers) ⇒ FindMaxNumbers
constructor
A new instance of FindMaxNumbers.
Methods included from Modules::Info
#error_message, #info, #result
Constructor Details
#initialize(count_max_numbers) ⇒ FindMaxNumbers
7 8 9 10 |
# File 'lib/find_max/services/find_max_numbers.rb', line 7 def initialize(count_max_numbers) @count_max_numbers = count_max_numbers @count_max_numbers_negative = -(@count_max_numbers) end |
Instance Method Details
#execute ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/find_max/services/find_max_numbers.rb', line 12 def execute if $stdin.tty? return nil end @sets_max_numbers = Immutable::SortedSet.new numbers = [] length = 0 $stdin.each_line do |line| numbers = line.scan(/\d+/).map { |i| i.to_i } || [] add_to_set_numbers(numbers, length) length = @sets_max_numbers.length if (@count_max_numbers < length) @sets_max_numbers = @sets_max_numbers[@count_max_numbers_negative..-1] end end @sets_max_numbers.to_a rescue Exception => e (e.) return nil end |