Решение на Девета задача от Любомир Папазов

Обратно към всички решения

Към профила на Любомир Папазов

Резултати

  • 1 точка от тестове
  • 0 бонус точки
  • 1 точка общо
  • 0 успешни тест(а)
  • 1 неуспешни тест(а)

Код

REPOSITORY = 'https://github.com/lpapazow/ruby-retrospective-2015-1'
#1.Хешовете са удобен начин да се заменят if-elsif-ове с повече от 2 случая.
# 2.Добро именуване на методите би могло да спести много главоболия и дори да "подскаже" как най-лесно да се реализира друг (например compare_prices и convert_to_bgn в първа задача).
# 3.Удобно е да да дадеш стойност на променлива още при декларирането. Освен, че пести безценни редове, прави кода по-четим.
# 4.Тъй като -1 е валиден индекс за масив, [0..-1] (в случая изпозлвам [1..-1]) е интересен начин да се селектират всички елементи на масива.
# 5. Assign-ването на стойност на променлива с ||= е бърз и удобен начин да се заменят редове излишен код.
# 6. Всеки клас трябва да отговаря за едно нещо. Уверих се колко непрактично би могло всичко да се случва в един клас.
# 7. Enum_for би могъл да бъде много полезен ако разбираш какво правиш.
# 8. Как с instance_eval да се подаде блок като парче код.
# 9. Доста е удобно да подадеш блок на sort_by.
# 10. Не е нещо конкретно, но се понаучих как да структурирам кода си по модули, класове в тях, евентуално класове в класовете, кой кого има смисъл да наследява и т.н.

Лог от изпълнението

From https://github.com/fmi/ruby-retrospective-2015-1
 * branch            master     -> FETCH_HEAD
HEAD is now at 767dd8d Update the task name in the readme for clarity
Cloning into 'submission'...
HEAD is now at e845a11 The new versions
From /tmp/ruby-retrospective-2015-1/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

Changes URL:
https://github.com/lpapazow/ruby-retrospective-2015-1/compare/767dd8dfe46...e845a1123f4

‘solutions/04.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/04.rb’
‘solutions/02.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/02.rb’
‘solutions/03.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/03.rb’
‘solutions/01.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/01.rb’
OK
........

Finished in 0.00485 seconds
8 examples, 0 failures
Spaces around operators
* no spaces around ! on line 24

Errors found
F

Failures:

  1) ruby-retrospective-2015-1 covers the minimum requirements
     Failure/Error: system(command) or raise "Command failed for #{@solutions_repo}: #{command}"
     RuntimeError:
       Command failed for https://github.com/lpapazow/ruby-retrospective-2015-1: bundle exec rake check
     # /tmp/d20160131-21007-g4h71e/spec.rb:107:in `execute'
     # /tmp/d20160131-21007-g4h71e/spec.rb:82:in `block (3 levels) in solutions_pass_all_checks'
     # /tmp/d20160131-21007-g4h71e/spec.rb:81:in `chdir'
     # /tmp/d20160131-21007-g4h71e/spec.rb:81:in `block (2 levels) in solutions_pass_all_checks'
     # /tmp/d20160131-21007-g4h71e/spec.rb:47:in `chdir'
     # /tmp/d20160131-21007-g4h71e/spec.rb:47:in `block in solutions_pass_all_checks'
     # /tmp/d20160131-21007-g4h71e/spec.rb:46:in `solutions_pass_all_checks'
     # /tmp/d20160131-21007-g4h71e/spec.rb:20:in `ok?'
     # /tmp/d20160131-21007-g4h71e/spec.rb:126:in `<top (required)>'

Finished in 0.00089 seconds
1 example, 1 failure

Failed examples:

rspec /tmp/d20160131-21007-g4h71e/spec.rb:132 # ruby-retrospective-2015-1 covers the minimum requirements

История (1 версия и 1 коментар)

Любомир обнови решението на 27.01.2016 22:18 (преди около 9 години)

+REPOSITORY = 'https://github.com/lpapazow/ruby-retrospective-2015-1'
+
+#1.Хешовете са удобен начин да се заменят if-elsif-ове с повече от 2 случая.
+
+# 2.Добро именуване на методите би могло да спести много главоболия и дори да "подскаже" как най-лесно да се реализира друг (например compare_prices и convert_to_bgn в първа задача).
+
+# 3.Удобно е да да дадеш стойност на променлива още при декларирането. Освен, че пести безценни редове, прави кода по-четим.
+
+# 4.Тъй като -1 е валиден индекс за масив, [0..-1] (в случая изпозлвам [1..-1]) е интересен начин да се селектират всички елементи на масива.
+
+# 5. Assign-ването на стойност на променлива с ||= е бърз и удобен начин да се заменят редове излишен код.
+
+# 6. Всеки клас трябва да отговаря за едно нещо. Уверих се колко непрактично би могло всичко да се случва в един клас.
+
+# 7. Enum_for би могъл да бъде много полезен ако разбираш какво правиш.
+
+# 8. Как с instance_eval да се подаде блок като парче код.
+
+# 9. Доста е удобно да подадеш блок на sort_by.
+
+# 10. Не е нещо конкретно, но се понаучих как да структурирам кода си по модули, класове в тях, евентуално класове в класовете, кой кого има смисъл да наследява и т.н.

Любо, хубави неща си научил, но има два проблема:

  1. Решенията ти не минават skeptic ограниченията. Употребата ти на унарния ! във втора задача е валидна, но в трета задача имаш пропуснати интервали около няколко оператора.
  2. Написал си само десет неща, вместо двадесет, както изисква условието на задачата.

Комбинацията от двете са причината да имаш нула точки, съгласно критериите за оценка на тази задача.

Въпреки това, оценявам вложените от теб усилия и ти давам точка. Надявам се, че в комбинация с наученото от теб, ще намериш времето, вложено в задачата, за полезно.