A sample app for debugging Ruby using Rookout.
- ruby 2.7
- rails 6.0.0 or later
- Clone the sample app from this repository.
git clone https://github.com/Rookout/tutorial-ruby.git
cd tutorial-ruby
- Set your Rookout token as an environment variable (for Windows, use set instead of export)
export ROOKOUT_TOKEN=[Your Rookout Token]
- Run the app:
bundle install
rails server
the app will now run on https://localhost:3000/
- Optional - Run the app using Docker:
docker run -p 3000:3000 -e ROOKOUT_TOKEN=$ROOKOUT_TOKEN rookout/tutorial-ruby
- Log in to the Rookout IDE
- Set up your debug session by selecting the Ruby app you started. See Debug session setup for more information
- Add the source code according to the following instructions. In this case, use the local filesystem option to associate the code in your local 'tutorial-ruby' folder.
- Open the file
app/controllers/tasks_controller.rb
- Add a Breakpoint next to line number 35 by clicking next the the line number in the file viewer
- The Breakpoint should turn solid purple, indicating that it has been set successfully and that it is active.
- If this is not the case, click here to see how to fix that
- Go the the app webpage http://localhost:3000/ and add a todo in order to trigger the Breakpoint
- Check the bottom pane Messages and you'll see the snapshot you just added, as it was triggered by the handler of the web api when you added a todo
- Breakpoint status is pending (hollow with purple outline) -- Connection to the app was not able to be established. Make sure that you inserted the Rookout Token in the right place and that the SDK was properly installed.
- Breakpoing status is disabled (solid grey) -- The breakpoint was disabled from collecting more data due to the limits being hit.
- Brekapoint error -- something went wrong. Check the breakpoint status to get more information on the error type, and for more information go to our breakpoint status guide.
- Our website for more information
- Our documentation for more information
- our deployment examples for platform-specific integration examples