Only tested with Rails 4.2 and Rails 5.1 (should work with any Rails 4.2+ application). Only tested with PostgreSQL.
Add to your Gemfile file:
group :development do
gem "localtower"
endIf you want the latest master branch, add to your Gemfile file following:
group :development do
gem "localtower", github: "damln/localtower"
endRun command in your terminal:
bundle installAdd to your config/routes.rb:
MyApp::Application.routes.draw do
if Rails.env.development? and defined?(Localtower)
mount Localtower::Engine, at: "localtower"
end
# Your other routes here:
# ...
endOpen your browser at http://localhost:3000/localtower.
You can put this line anywhere in your code:
Localtower::Plugins::Capture.new(self, binding).save
For example:
def my_method
user = User.find(1)
some_data = {foo: "bar"}
Localtower::Plugins::Capture.new(self, binding).save
endThen go to the Localtower intercave here: http://localhost:3000/localtower/logs and you will see the variables user and some_data in the UI.
The value for each variable will try to call .to_json. If you have a huge collection of models likes @users you will see all the collection as an Array.
If you want to contribute to the gem:
Create a spec/dummy/.env file with the credentials to your PostgreSQL Database. It should look like this:
LOCALTOWER_PG_USERNAME="admin"
LOCALTOWER_PG_PASSWORD="root_or_smething"
Run the spec:
bundle install
bundle exec rspec spec/Notes: Tests are currently very slow because this is testing rails commands so it boots the framework for each test. Zeus or spring should be introduced.
Thanks for reporting issues, I'll do my best.
rm *.gem | gem build localtower.gemspec && gem push localtower-*.gem