p_nmax 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +9 -0
  3. data/bin/nmax +4 -0
  4. data/lib/p_nmax.rb +26 -0
  5. data/test/test_p_nmax.rb +21 -0
  6. metadata +90 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 39d1ab50339bb5724b919f33d350d31f42476c65
4
+ data.tar.gz: ebff2f87745011387f585c8a4863a0e84136ba61
5
+ SHA512:
6
+ metadata.gz: a299ab6a8841653daa922019838d82eb51493b24dffe4c249dbaf9023b73ffb368f9633d222a602c96e81b398cec08c1aae102d0efa6f3c6d6bccd0fc5fa05c3
7
+ data.tar.gz: 48018f9081931c1c73fb820d141843acc86981d08ae7fad7eef271b932d6b2de4a9923ddca9860b476766e52e346e6f00e9ad0d0aa0e4823d8f9a7f668ee82fd
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ t.test_files = FileList['test/test_*.rb']
6
+ end
7
+
8
+ desc "Run tests"
9
+ task :default => :test
data/bin/nmax ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'p_nmax'
3
+
4
+ PNmax.scan_numbers STDIN, ARGV.shift.to_i
data/lib/p_nmax.rb ADDED
@@ -0,0 +1,26 @@
1
+ class PNmax
2
+
3
+ class << self
4
+
5
+ def scan_nums(stdin, argv)
6
+ glue_nums(stdin).max(argv)
7
+ end
8
+
9
+ def glue_nums(input)
10
+ nums_array = []
11
+
12
+ until input.eof?
13
+ unless (nums_array << input.read(1).scan(/\d/)[0]).last || (nums_array[-2])
14
+ nums_array.pop
15
+ end
16
+ end
17
+ nums_array
18
+ .join(',')
19
+ .gsub(/(?!\,{2,})\,/, '')
20
+ .split(',')
21
+ .map(&:to_i)
22
+ end
23
+ end
24
+ end
25
+
26
+
@@ -0,0 +1,21 @@
1
+ require 'minitest/autorun'
2
+ require 'p_nmax'
3
+
4
+ class PNmaxTest < Minitest::Test
5
+ def test_scan_numbers
6
+ n = 3
7
+ current_array = []
8
+ lorem = "L1orem ipsum dolor sit amet,
9
+ consectetur adipiscing elit,
10
+ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
11
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
12
+
13
+ 3.times do |i|
14
+ current_array << rand(1..100000)
15
+ lorem.insert(i*lorem.length/2, current_array.last.to_s)
16
+ end
17
+
18
+ assert_equal current_array.max(n),
19
+ PNmax.scan_nums(StringIO.new(lorem), n)
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: p_nmax
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Vladimir Ryashentsev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Print n maximum numbers from file
56
+ email:
57
+ - qo-op@list.ru
58
+ executables:
59
+ - nmax
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - Rakefile
64
+ - bin/nmax
65
+ - lib/p_nmax.rb
66
+ - test/test_p_nmax.rb
67
+ homepage:
68
+ licenses: []
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubyforge_project:
86
+ rubygems_version: 2.5.1
87
+ signing_key:
88
+ specification_version: 4
89
+ summary: Print n maximum numbers from file
90
+ test_files: []