Решение на Десета задача от Петър Иванов

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

Към профила на Петър Иванов

Резултати

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

Код

REPOSITORY = "https://github.com/pepincho/ruby-retrospective-2015-2"
# 1. Добра практика е да обграждаме класове или функции в някъв модул, ако са логически свързани, а не да ги слагаме под някакъв общ клас, защото класовете е добре да съдържат полета и методи, докато модулите да съдържат класове и методи.
# 2. Използване на стринг константи, които може да ги форматираме. Например в задача 6 със TEMPLATE е изнесен целият HTML код.
# 3. Използване на "#ceil", когато искаме да си закръглим някое число с плаваща запетая.
# 4. Използване на "#case - when", вместо да пишем няколко if-a един след друг.
# 5. Използване на "Array.new(rows) { [0] * columns }", вместо да си усложняваме живота с "Array.new(rows) { Array.new(columns) { 0 } }". Първото е по-прегледно и по-лесно за четене.
# 6. Използване на "#Comparable" в даден клас, когато обектите от него могат да бъдат в някаква наредба или да се сравняват.
# 7. Понякога е добра практика да предефинираме някои оператори в наши класове, но не и в стандартните библиотеки в Ruby, ако това ще опрости кода ни.
# 8. Да използваме "#flatten", когато искаме няколко вложени колекции да ги направим да са на "едно ниво". Например, ако имаме вложени масиви, то с "#flatten" ще се получи един масив от всички елементи, които са били преди във вложените колекции.

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

From https://github.com/fmi/ruby-retrospective-2015-2
 * branch            master     -> FETCH_HEAD
HEAD is now at 512294b Modify a test in task 8 to not include empty cells
Cloning into 'submission'...
HEAD is now at f38fc14 Add some improved task's solutions.
From /tmp/ruby-retrospective-2015-2/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

Changes URL:
https://github.com/pepincho/ruby-retrospective-2015-2/compare/512294b6dde...f38fc14f545

‘solutions/08.rb’ -> ‘/tmp/ruby-retrospective-2015-2/checker/solutions/08.rb’
‘solutions/05.rb’ -> ‘/tmp/ruby-retrospective-2015-2/checker/solutions/05.rb’
‘solutions/07.rb’ -> ‘/tmp/ruby-retrospective-2015-2/checker/solutions/07.rb’
‘solutions/06.rb’ -> ‘/tmp/ruby-retrospective-2015-2/checker/solutions/06.rb’
Number of lines per method (7)
* ObjectStore#commit is 10 lines long
* ObjectStore#log is 9 lines long

Errors found
F

Failures:

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

Finished in 0.0009 seconds
1 example, 1 failure

Failed examples:

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

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

Петър обнови решението на 27.01.2016 23:32 (преди над 9 години)

+REPOSITORY = "https://github.com/pepincho/ruby-retrospective-2015-2"
+
+# 1. Добра практика е да обграждаме класове или функции в някъв модул, ако са логически свързани, а не да ги слагаме под някакъв общ клас, защото класовете е добре да съдържат полета и методи, докато модулите да съдържат класове и методи.
+
+# 2. Използване на стринг константи, които може да ги форматираме. Например в задача 6 със TEMPLATE е изнесен целият HTML код.
+
+# 3. Използване на "#ceil", когато искаме да си закръглим някое число с плаваща запетая.
+
+# 4. Използване на "#case - when", вместо да пишем няколко if-a един след друг.
+
+# 5. Използване на "Array.new(rows) { [0] * columns }", вместо да си усложняваме живота с "Array.new(rows) { Array.new(columns) { 0 } }". Първото е по-прегледно и по-лесно за четене.
+
+# 6. Използване на "#Comparable" в даден клас, когато обектите от него могат да бъдат в някаква наредба или да се сравняват.
+
+# 7. Понякога е добра практика да предефинираме някои оператори в наши класове, но не и в стандартните библиотеки в Ruby, ако това ще опрости кода ни.
+
+# 8. Да използваме "#flatten", когато искаме няколко вложени колекции да ги направим да са на "едно ниво". Например, ако имаме вложени масиви, то с "#flatten" ще се получи един масив от всички елементи, които са били преди във вложените колекции.