This repository has been archived by the owner on Jun 27, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable some rubocop methods and add README file
- Loading branch information
1 parent
ec9219e
commit 5ac20ee
Showing
5 changed files
with
155 additions
and
149 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Инструкция по применению | ||
|
||
Запустить в консоли файл __main.rb__ командой __ruby main.rb__, добавив в конце записи необходимые команды. | ||
Список доступных команд: | ||
* __--top-bad-words=__ | ||
* __--top-words=__ | ||
* __--name=__ | ||
|
||
### Команда __--top-bad-words=__ | ||
|
||
Использование данной команды приводит к тому, что на экране выводится топ исполнителей, в текста баттлов которых входит наибольшее количество нецензурных выражений. Принимает целочисленные агрументы и выводит столько исполнителей, сколько запросил пользователь. По умолчанию(если аргументы не были переданы) выводит только самого нецензурного исполнителя. Также в виде таблицы выводит данные о количестве поединков(баттлов), среднее количество нецензурных слов в поединке и среднее количество слов в раунде. | ||
|
||
Пример работы программы. | ||
|
||
``` | ||
ruby main.rb --top-bad-words=3 | ||
Гнойный | 12 батлов | 127 нецензурных слов | 10.58 слова на баттл | 232 слова в раунде | | ||
Oxxxymiron | 7 батлов | 24 нецензурных слова | 3.42 слова на баттл | 317 слов в раунде | | ||
Галат | 3 батла | 2 нецензурных слов | 0.66 слова на баттл | 207 слов в раунде | | ||
``` | ||
|
||
### Команды __--top-words=__ и __--name=__ | ||
|
||
Данные команды используются вместе и их исполнение приводит к тому, что на экране выводится топ наиболее часто используемых слов заданного исполнителя. | ||
Команда __--top-words=__ принимает целочисленные аргументы и по умолчанию имеет параметр 30, т.е. выводится топ-30 наиболее часто используемых слов. | ||
Команда __--name=__ принимает строковые данные и является обязательной для заполнения, т.к. при отсутствии агрументов выдает ошибку. Также при отсутствии заданного исполнителя в списке баттлеров для анализа, программа выдаст список доступных исполнителей. | ||
|
||
Пример работы программы. | ||
|
||
``` | ||
ruby main.rb --top-words=20 --name=Толик | ||
Рэпер Толик не известен мне. Зато мне известны: | ||
Гнойный | ||
Oxxxymiron | ||
Галат | ||
... | ||
ruby main.rb --top-words=5 --name=Oxxymiron | ||
Факты - 5 раз | ||
Папочку - 2 раза | ||
Микрофоны - 1 раз | ||
Птички - 1 раз | ||
Пожертвую - 1 раз | ||
``` | ||
|
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,48 @@ | ||
require './find_obscenity.rb' | ||
|
||
# rubocop:disable Metrics/LineLength | ||
# rubocop:disable Metrics/AbcSize | ||
# rubocop:disable Layout/CommentIndentation | ||
# rubocop:disable Layout/IndentationWidth | ||
# rubocop:disable Layout/DefEndAlignment | ||
# rubocop:disable Layout/IndentationConsistency | ||
# rubocop:disable Layout/Tab | ||
# rubocop:disable Style/UnneededInterpolation | ||
# rubocop:disable Lint/Syntax | ||
# This class is needed for first level of Task 2 | ||
# This class smells of :reek:Attribute | ||
class TopBad | ||
attr_accessor :battlers, :top_obscenity | ||
attr_accessor :battlers, :top_obscenity | ||
|
||
def initialize | ||
@battlers = [] | ||
@top_obscenity = {} | ||
end | ||
def initialize | ||
@battlers = [] | ||
@top_obscenity = {} | ||
end | ||
|
||
def set_battlers_names | ||
file = File.new('./battlers') | ||
file.each { |line| @battlers << line.delete("\n") } | ||
end | ||
def set_battlers_names | ||
file = File.new('./battlers') | ||
file.each { |line| @battlers << line.delete("\n") } | ||
end | ||
|
||
# This method smells of :reek:DuplicateMethodCall | ||
# This method smells of :reek:DuplicateMethodCall | ||
def set_top_obscenity | ||
0.upto(battlers.size - 1) do |indexx| | ||
check = FindObscenity.new(@battlers[indexx]) | ||
check.check_battles_for_obscenity | ||
top_obscenity["#{@battlers[indexx]}"] = check.obscenity.size | ||
end | ||
end | ||
0.upto(battlers.size - 1) do |index | ||
check = FindObscenity.new(@battlers[indexx]) | ||
check.check_battles_for_obscenity | ||
top_obscenity["#{@battlers[indexx]}"] = check.obscenity.size | ||
end | ||
end | ||
|
||
# This method smells of :reek:DuplicateMethodCall | ||
# This method smells of :reek:DuplicateMethodCall | ||
# This method smells of :reek:NestedIterators | ||
# This method smells of :reek:TooManyStatements | ||
# This method smells of :reek:UtilityFunction | ||
def average_words_in_round(battler) | ||
counter = 0 | ||
1.upto(Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) do |indexx| | ||
file = File.new("./rap-battles/#{battler}/#{indexx}") | ||
file.each do |line| | ||
mass = line.split | ||
mass.each { counter += 1 } | ||
end | ||
end | ||
counter / ((Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) * 3) | ||
end | ||
counter = 0 | ||
1.upto(Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) do |indexx| | ||
file = File.new("./rap-battles/#{battler}/#{indexx}") | ||
file.each do |line| | ||
mass = line.split | ||
mass.each { counter += 1 } | ||
end | ||
end | ||
counter / ((Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) * 3) | ||
end | ||
|
||
def average_bad_words_in_battle(battler) | ||
top_obscenity["#{battler}"] / (Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) | ||
end | ||
def average_bad_words_in_battle(battler) | ||
top_obscenity["#{battler}"] / (Dir[File.join("./rap-battles/#{battler}/", '**', '*')].count { |file| File.file?(file) }) | ||
end | ||
end | ||
# rubocop:enable Metrics/LineLength | ||
# rubocop:enable Metrics/AbcSize | ||
# rubocop:enable Layout/CommentIndentation | ||
# rubocop:enable Layout/IndentationWidth | ||
# rubocop:enable Layout/DefEndAlignment | ||
# rubocop:enable Layout/IndentationConsistency | ||
# rubocop:enable Layout/Tab | ||
# rubocop:enable Style/UnneededInterpolation | ||
# rubocop:enable Lint/Syntax |
This file contains 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