A Sinatra Extension that shows your app's settings and other debug information.
Ever wanted an overview of all Sinatra settings (formerly options) in your app?
Well, now you can through this Sinatra Extension which makes that task dead simple, while also adding in some other useful debug information in the output.
With a heavy dose of inspiration taken from Sinatra's Show Exception output page.
$ (sudo)? gem install sinatra-settings
This Gem depends upon the following:
sinatra ( >= 1.0 )
rspec (>= 1.3.0 )
rack-test (>= 0.5.3)
rspec_hpricot_matchers (>= 0.1.0)
sinatra-tests (>= 0.1.6)
To view the settings in your app, just require and register the extension in your sub-classed Sinatra app:
require 'sinatra/settings' class YourApp < Sinatra::Base register(Sinatra::Settings) enable :show_settings # turn it on <snip...> end
In your “classic” Sinatra app, you just require the extension like this:
require 'rubygems' require 'sinatra' require 'sinatra/settings' <snip...>
Then at the bottom of your App's layout - layout.(erb|haml) add the following:
<snip...> <%= show_settings_output? %> </body> </html>
Reload your app and view the added content at the bottom of your page.
You can see an example of the output here:
That's really all there is.
By default, these are the settings:
# don't show settings by default set :show_settings, false # only show the settings in development mode. set :show_settings_environment, :development
Apart from turning it On / Off, you can also set the output to show up in :production or :test enviroments.
The advantage of having two configuration 'switches' is that you can leave all the code as is, and in :development it will show the output, but in :production no output will be shown (other than a tiny HTML comment telling you it's Off)
That's it. I hope that's easy enough.
If the above is not clear enough, please check the Specs for a better understanding.
If something is not behaving intuitively, it is a bug, and should be reported. Report it here: github.com/kematzy/sinatra-settings/issues
Decide whether this functionality should really be incorporated into a Sinatra::Debug extension instead.
Any other improvements you or I can think of.
Fork the project.
Make your feature addition or bug fix.
Add tests for it. This is important so I don't break it in a future version unintentionally.
Commit, do not mess with rakefile, version, or history.
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 kematzy. Released under the MIT License.
See LICENSE for details.