These are the changes I did on my technical interview to improve the summary of the mirroring process.
Fixes #702
Change Type
Please select the correct option.
[ ] Bug Fix (a non-breaking change which fixes an issue)
[x] New Feature (a non-breaking change which adds new functionality)
[ ] Documentation Update (a change which only updates documentation)
Checklist
Please check off each item if the requirement is met.
[x] I have verified that my code follows RMT's coding standards with rubocop.
[x] I have reviewed my own code and believe that it's ready for an external review.
[x] I have provided comments for any hard-to-understand code.
[ ] I have documented the MANUAL.md file with any changes to the user experience.
[x] RMT's test coverage remains at 100%.
[ ] If my changes are non-trivial, I have added a changelog entry to notify users at package/obs/rmt-server.changes.
Other Notes
Maybe we can update some rubocop rules
Regarding spec/lib/rmt/cli/mirror_spec.rb:
RSpec/ExpectOutput: Use expect { ... }.to output(...).to_stdout instead of mutating $stdout.
I was unable to test well the summary output with the output helper, so I decided to use the $stdout which makes our test more robust.
RSpec/MultipleExpectations and RSpec/ExampleLength were ignored because of the changes belonging to the summary output which have more information.
RSpec/ClassLength in this case there 3 more lines than the limit which is 177. Is there a reason for this number?
I prefer deep modules (with a simple interface) than shallow modules (with a complex interface) as I learned from: A Philosophy of Software Design by John Ousterhout.
Description
These are the changes I did on my technical interview to improve the summary of the mirroring process.
Fixes #702
Change Type
Please select the correct option.
Checklist
Please check off each item if the requirement is met.
rubocop
.MANUAL.md
file with any changes to the user experience.package/obs/rmt-server.changes
.Other Notes
Maybe we can update some rubocop rules
Regarding
spec/lib/rmt/cli/mirror_spec.rb
:RSpec/ExpectOutput: Use expect { ... }.to output(...).to_stdout instead of mutating $stdout.
I was unable to test well the summary output with the
output
helper, so I decided to use the$stdout
which makes our test more robust.RSpec/MultipleExpectations
andRSpec/ExampleLength
were ignored because of the changes belonging to the summary output which have more information.RSpec/ClassLength
in this case there 3 more lines than the limit which is 177. Is there a reason for this number? I prefer deep modules (with a simple interface) than shallow modules (with a complex interface) as I learned from: A Philosophy of Software Design by John Ousterhout.