max_amount 0.1.1 → 1.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -1
- data/Gemfile +5 -3
- data/Gemfile.lock +7 -4
- data/README.md +69 -17
- data/Rakefile +2 -4
- data/lib/main.rb +1 -5
- data/lib/max_amount/cli.rb +5 -4
- data/lib/max_amount/{extract_integer.rb → seeker.rb} +0 -0
- data/lib/max_amount/test_data.txt +16 -0
- data/lib/max_amount/version.rb +1 -1
- data/lib/max_amount.rb +10 -0
- metadata +11 -8
- data/examples/max_amount.rb +0 -11
- data/sig/max_amount.rbs +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf9b840576ec01dfd5f676102f6f6b2583b40b1f65bf658c3abd67d592548627
|
4
|
+
data.tar.gz: 7fa90c30fbd38db2571b74ec3241205a7f7e5b7f5b55a4b00cdfd4f42f790522
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ff40fc634062cb6d89ec7b955ba801c9fea5620e933d56a04ea00d92cbedc31ba075d901024492acf7cb1205f69d668a530ba0fe249ab183fede5a948666801
|
7
|
+
data.tar.gz: 065a188d876a81e9a0a26970895386c4fe7b0c0b1ada637c5e70b38d610d40e3f5c089aec2994db5741af68980a1d7c739dd53e5689eead2f9370d8984f4290b
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -7,12 +7,14 @@ gemspec
|
|
7
7
|
|
8
8
|
gem 'rake', '~> 13.0'
|
9
9
|
|
10
|
+
gem 'fileutils'
|
11
|
+
|
10
12
|
group :test do
|
11
|
-
gem 'byebug'
|
12
|
-
gem '
|
13
|
+
gem 'byebug'
|
14
|
+
gem 'codecov', '~> 0.4'
|
13
15
|
gem 'rspec', '~> 3.1'
|
14
16
|
gem 'rubocop', '~> 1.36'
|
15
17
|
gem 'rubocop-performance', '~> 1.15'
|
16
18
|
gem 'rubocop-rspec', '~> 2.13'
|
17
|
-
gem 'simplecov',
|
19
|
+
gem 'simplecov', '~> 0.21'
|
18
20
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
max_amount (
|
4
|
+
max_amount (1.3.4)
|
5
5
|
optparse
|
6
6
|
securerandom
|
7
7
|
|
@@ -10,9 +10,11 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
ast (2.4.2)
|
12
12
|
byebug (11.1.3)
|
13
|
+
codecov (0.6.0)
|
14
|
+
simplecov (>= 0.15, < 0.22)
|
13
15
|
diff-lcs (1.5.0)
|
14
16
|
docile (1.4.0)
|
15
|
-
|
17
|
+
fileutils (1.5.0)
|
16
18
|
json (2.6.2)
|
17
19
|
optparse (0.2.0)
|
18
20
|
parallel (1.22.1)
|
@@ -67,14 +69,15 @@ PLATFORMS
|
|
67
69
|
|
68
70
|
DEPENDENCIES
|
69
71
|
byebug
|
70
|
-
|
72
|
+
codecov (~> 0.4)
|
73
|
+
fileutils
|
71
74
|
max_amount!
|
72
75
|
rake (~> 13.0)
|
73
76
|
rspec (~> 3.1)
|
74
77
|
rubocop (~> 1.36)
|
75
78
|
rubocop-performance (~> 1.15)
|
76
79
|
rubocop-rspec (~> 2.13)
|
77
|
-
simplecov
|
80
|
+
simplecov (~> 0.21)
|
78
81
|
|
79
82
|
BUNDLED WITH
|
80
83
|
2.3.21
|
data/README.md
CHANGED
@@ -1,33 +1,85 @@
|
|
1
|
-
#
|
1
|
+
# max_amount
|
2
2
|
|
3
|
-
|
3
|
+
![Gem](https://img.shields.io/gem/v/max_amount)
|
4
|
+
![CI](https://github.com/ProfessorNemo/max_amount/actions/workflows/ci.yml/badge.svg)
|
5
|
+
[![Test Coverage](https://codecov.io/gh/ProfessorNemo/max_amount/graph/badge.svg)](https://codecov.io/gh/ProfessorNemo/max_amount)
|
6
|
+
![Downloads total](https://img.shields.io/gem/dt/max_amount)
|
4
7
|
|
5
|
-
|
8
|
+
## Скрипт выполняется следующее:
|
9
|
+
* читает из входящего потока текстовые данные;
|
10
|
+
* по завершении ввода выводит n самых больших целых чисел, встретившихся в
|
11
|
+
полученных текстовых данных.
|
12
|
+
Дополнительные сведения:
|
13
|
+
* числом считается любая непрерывная последовательность цифр в тексте;
|
14
|
+
* чисел длиннее 1000 цифр во входных данных нет;
|
15
|
+
* числа n,l и m - консольные параметры;
|
16
|
+
* код покрыт тестами;
|
17
|
+
* код оформлен в виде гема.
|
6
18
|
|
7
|
-
##
|
19
|
+
## Установка:
|
8
20
|
|
9
|
-
|
21
|
+
Добавьте
|
10
22
|
|
11
|
-
|
23
|
+
``` rb
|
24
|
+
gem 'max_amount'
|
25
|
+
```
|
12
26
|
|
13
|
-
|
27
|
+
И сделайте
|
14
28
|
|
15
|
-
|
29
|
+
bundle
|
16
30
|
|
17
|
-
|
31
|
+
Или сделайте
|
18
32
|
|
19
|
-
|
33
|
+
gem install max_amount
|
20
34
|
|
21
|
-
##
|
35
|
+
## Использование:
|
22
36
|
|
23
|
-
|
37
|
+
``` rb
|
38
|
+
require 'max_amount'
|
24
39
|
|
25
|
-
|
40
|
+
user_string = '24b6be4d91faa7d3469b9a0cc17d1d5267d21c5f8653ba4f70e3ef007'
|
26
41
|
|
27
|
-
|
42
|
+
user_string = nil if user_string.nil?
|
28
43
|
|
29
|
-
|
44
|
+
$stdout.print "\n\n== Результат: ==\n\n"
|
30
45
|
|
31
|
-
|
46
|
+
puts MaxAmount.result(user_string: user_string)
|
47
|
+
```
|
32
48
|
|
33
|
-
|
49
|
+
## Запуск:
|
50
|
+
|
51
|
+
``` rb
|
52
|
+
ruby name_programm.rb --h
|
53
|
+
|
54
|
+
Результат:
|
55
|
+
|
56
|
+
Чтение из входящего потока текстовых данных:
|
57
|
+
--h Справка
|
58
|
+
--n Nmax n самых больших целых чисел (n > 0)
|
59
|
+
--l length длина строки
|
60
|
+
--m choice тестовая строка (m=1) / случайно сгенерированная строка (m=2) / пользовательская строка (m=3)
|
61
|
+
|
62
|
+
|
63
|
+
$ ruby name_programm.rb --n 10 --l 300 --m 3
|
64
|
+
|
65
|
+
Результат:
|
66
|
+
|
67
|
+
8653
|
68
|
+
5267
|
69
|
+
3469
|
70
|
+
91
|
71
|
+
70
|
72
|
+
24
|
73
|
+
21
|
74
|
+
17
|
75
|
+
9
|
76
|
+
7
|
77
|
+
```
|
78
|
+
|
79
|
+
## Помочь в разработке
|
80
|
+
|
81
|
+
Шлите ваши пулреквесты в https://github.com/ProfessorNemo/max_amount.
|
82
|
+
|
83
|
+
## Лицензия
|
84
|
+
|
85
|
+
[MIT License](https://opensource.org/licenses/MIT)
|
data/Rakefile
CHANGED
@@ -9,16 +9,14 @@ rescue LoadError
|
|
9
9
|
puts 'although not required, bundler is recommened for running the tests'
|
10
10
|
end
|
11
11
|
|
12
|
+
task default: :spec
|
13
|
+
|
12
14
|
require 'bundler/gem_tasks'
|
13
15
|
require 'rspec/core/rake_task'
|
14
|
-
|
15
16
|
RSpec::Core::RakeTask.new(:spec)
|
16
17
|
|
17
18
|
require 'rubocop/rake_task'
|
18
|
-
|
19
19
|
RuboCop::RakeTask.new do |task|
|
20
20
|
task.requires << 'rubocop-performance'
|
21
21
|
task.requires << 'rubocop-rspec'
|
22
22
|
end
|
23
|
-
|
24
|
-
task default: %i[spec rubocop]
|
data/lib/main.rb
CHANGED
@@ -1,13 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'max_amount/version'
|
4
|
-
|
5
|
-
require 'byebug'
|
6
4
|
require 'optparse'
|
7
5
|
require 'securerandom'
|
8
|
-
require 'dotenv/load'
|
9
|
-
|
10
6
|
require_relative 'max_amount/options'
|
11
7
|
require_relative 'max_amount/cli'
|
12
8
|
require_relative 'max_amount/errors'
|
13
|
-
require_relative 'max_amount/
|
9
|
+
require_relative 'max_amount/seeker'
|
data/lib/max_amount/cli.rb
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module MaxAmount
|
4
|
-
module
|
4
|
+
module Cli
|
5
5
|
extend MaxAmount::Options
|
6
6
|
|
7
|
-
def self.call(
|
7
|
+
def self.call(user_string:)
|
8
8
|
options = MaxAmount::Options.ask
|
9
9
|
|
10
10
|
case options[:m]
|
11
11
|
when '1'
|
12
|
-
str =
|
12
|
+
# str = File.read File.expand_path('../test/test_data.txt', __dir__).sub('/lib', '')
|
13
|
+
str = File.read File.expand_path('test_data.txt', __dir__)
|
13
14
|
when '2'
|
14
15
|
str = SecureRandom.hex(options[:l].to_i)
|
15
16
|
when '3'
|
16
|
-
str =
|
17
|
+
str = user_string
|
17
18
|
end
|
18
19
|
|
19
20
|
params = {
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
xfsNZtpWsrKH1$OdTp35
|
2
|
+
lV$MHa@X$n05Uay04GPrO!xCAym8ezG&%-$yGEw1Ssf_qBqL
|
3
|
+
0XjhTVE_PSys@GiLk%m&zdxtycv_6lLA73Rd8rYjarRTn
|
4
|
+
$Ha_2PF_Zqhk-b
|
5
|
+
I1Anb7bKOuQW5@o9oHMduF%
|
6
|
+
8F3zkJai0
|
7
|
+
X4tPsfqos5qudf#.oqQKDkCNtG
|
8
|
+
g0oBCqch%$j!lKF80b6nn
|
9
|
+
A.DxrUqh!6-PXrIlTAbn#imlbu-UVoj96ArvYEKyE6Lz94sKSQ-kS4DdEfqsuI-yLgXXyntFH#47YNa
|
10
|
+
gNJyuzrk@S73eUUP!Lnn$l@iPDvS6b3&uZAKPfBTVEPDdtLdIkG27
|
11
|
+
Zcc18SOQ0P&%WLwfFh@Eqcw
|
12
|
+
ntISbSV#3FGVJz__zcGnOvOgB
|
13
|
+
dbFcrcAuu$Hf!i%GxjEF46r@!Qhq9iR$gxb7tgD&sFBZy-xFq
|
14
|
+
jM7J.2X%Erb@ukP&g$zxc%Y_$sq0MNUO#l#QzV4.Jxq50uCaYF&J9J3o@WF2fm2uBqPrcvuDS$DCJbw!kCNP.IurST.%-f!-cNmNJJ4Y_S2hXLc5dB5evaD-NYX8z1Af$e8Bf1jPXoP7vDL
|
15
|
+
5bWcCuRJdI&o2vJz-dDHSma%gJa&$e2RJ4kq7FmiTQyHB6gKgzSi1Oqouqh%eF3ErnLvj&sqp-hZY8-yr0$A4c.rMZuVdZNLMCDU!w3rV806xG@SIudZbKmjpcVNfMVBJNeEzUIC7YxKzI0$lw!@cobkk_SkAUSjTpYLvzph.Bp!H4Cfmh!oTs2Fcg7&&!C.Forlg%jlv%-n68kjY5m8N#4v@w9eAjaQJdpU2Bg.ULkJe.5c$wEV!E.EKo2A1H8C#-HnupTT6iD#s4X1TxlKdZlLK!.QAAjx
|
16
|
+
k-4g$amq4Fn6K44dj4uyzxISEb2UvWO4rsPb1E2e.BSNCqK8NAYa%Qkxghvm$qneBpMc0A7Xzoma@TMeZJh9&OorU2FD9fS_XZIugrxf#q3IPIFqoCsU
|
data/lib/max_amount/version.rb
CHANGED
data/lib/max_amount.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: max_amount
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gleb V. Zhegilin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: optparse
|
@@ -38,8 +38,9 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description:
|
42
|
-
|
41
|
+
description: |-
|
42
|
+
Reading text data and outputting the n largest integers encountered in the received text data.
|
43
|
+
When input is complete, prints the n largest integers.
|
43
44
|
email:
|
44
45
|
- gleboceanborn@gmail.com
|
45
46
|
executables: []
|
@@ -55,18 +56,20 @@ files:
|
|
55
56
|
- LICENSE.txt
|
56
57
|
- README.md
|
57
58
|
- Rakefile
|
58
|
-
- examples/max_amount.rb
|
59
59
|
- lib/main.rb
|
60
|
+
- lib/max_amount.rb
|
60
61
|
- lib/max_amount/cli.rb
|
61
62
|
- lib/max_amount/errors.rb
|
62
|
-
- lib/max_amount/extract_integer.rb
|
63
63
|
- lib/max_amount/options.rb
|
64
|
+
- lib/max_amount/seeker.rb
|
65
|
+
- lib/max_amount/test_data.txt
|
64
66
|
- lib/max_amount/version.rb
|
65
|
-
- sig/max_amount.rbs
|
66
67
|
homepage: https://github.com/ProfessorNemo/max_amount
|
67
68
|
licenses:
|
68
69
|
- MIT
|
69
70
|
metadata:
|
71
|
+
homepage_uri: https://github.com/ProfessorNemo/max_amount
|
72
|
+
source_code_uri: https://github.com/ProfessorNemo/max_amount
|
70
73
|
rubygems_mfa_required: 'true'
|
71
74
|
post_install_message:
|
72
75
|
rdoc_options: []
|
@@ -76,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
79
|
requirements:
|
77
80
|
- - ">="
|
78
81
|
- !ruby/object:Gem::Version
|
79
|
-
version: 3.0.
|
82
|
+
version: 3.0.2
|
80
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
84
|
requirements:
|
82
85
|
- - ">="
|
data/examples/max_amount.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../lib/main'
|
4
|
-
|
5
|
-
# путь к файлу с пользовательской строкой
|
6
|
-
path = File.expand_path('../spec/support/fixtures/sample_data.txt', __dir__)
|
7
|
-
|
8
|
-
# если файла нет, то присваиваем nil
|
9
|
-
custom_string = File.exist?(path) ? File.read(path) : nil
|
10
|
-
|
11
|
-
MaxAmount::CLI.call(custom_string: custom_string)
|
data/sig/max_amount.rbs
DELETED