Hello stranger! You have just taken your first step on your adventure with programming in RoR. We are proud of you! Now, we challenge you to complete the following task. Ready, steady...
Follow the instructions:
git clone git@github.com:netguru/testblog.git
bundle
bundle exec rails s
)21/07/2013 : 14:10
Remember – there is a lmited number of attendees, so the sooner you complete the task the better your chances are.
Technically, they way how you will be completing this task is called Test-driven development (TDD). I found using guard gem in this programming methodology is very helpful. If you aren't familiar with TDD concept yet let me explain this in few words.
Idea of this programming methodology is to first write a test and then write a piece of code that will make this test pass :green_heart:.
In testblog
app tests are already written. The 'only' thing you need to do is to make these tests pass and eventually add your own for custom behaviour of app (and also make them pass!).
To make this process more friendly I would recommend you use guard-rspec gem. How does it work?
It's very simple. By default Guard (with rspec addon) watches files in your working folder and when you make any change to them (add piece of code, remove file, etc.) it runs test so you can track your progress all the time without running rspec
command anymore!
It saves a lot of the time, help to track current and further tasks and what is more, if your new piece of code will destroy (bug :exlamation:) any behaviour in app you will get notified about it immedlity. As sooner you can react on bug as easier it is to remove this bug.
How to start?
Open new tab/window of console/terminal/cmd that will be dedicated for guard runner.
Go to testblog
directory and run guard init rspec
You should see in console:
21:02:07 - INFO - Writing new Guardfile to /path_where_you_cloned_this_repo/testblog/Guardfile
21:02:07 - INFO - rspec guard added to Guardfile, feel free to edit it
Run guard
command. Now this console/terminal/cmd tab will watch all files in project's directory untill you terminate it (control+c on OS X
). You should see this console output:
21:02:18 - INFO - Guard is using TerminalTitle to send notifications.
21:02:18 - INFO - Guard::RSpec is running
21:02:18 - INFO - Guard is now watching at '/path_where_you_cloned_this_repo/testblog'
Go write some code and get notified about your progress on live with guard!
You can also modify default behaviour of guard! For further read visit guard-rspec repo and/or guard repo.