Skip to content

Some extensions to the sinatra default behavior (usefull for other Sintatra extensions, extracted from BigBand).

License

Notifications You must be signed in to change notification settings

rkh/sinatra-sugar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sinatra::Sugar

Basic Sinatra extension (mainly extending Sinatra's standard methods, like set or register). Also it features a more advanced path guessing than Sinatra::Base.

Normally you do not have to register this module manually, as the other extensions will do so if necessary.

BigBand

Sinatra::Sugar is part of the BigBand stack. Check it out if you are looking for other fancy Sinatra extensions.

Installation

gem install sinatra-sugar

More advanced set

  • Adds set_#{key} and set_value hooks to set.

  • Merges the old value with the new one, if both are hashes:

      set :haml, :format => :html5, :escape_html => true
      set :haml, :excape_html => false
      haml # => { :format => :html5, :escape_html => false }
    

More advanced register

If an extension is registered twice, the registered hook will only be called once.

Ability to extend command line options

Example:

require "sinatra/base"
require "sinatra/sugar"

class App < Sinatra::Base
  register Sinatra::Sugar
  run_option_parser.on("-i") { puts "yes, -i is a nice option" }
  run! if $0 == __FILE__
end

Exposes caller usage of Sinatra

This is for extension developers only. If you modify some core methods, you don't want your ruby file to be mistaken for the app_file. You can fix it this way:

require "sinatra/base"
require "sinatra/sugar"
module Sinatra
  Base.ignore_caller
  module HardcoreExtension
    # ...
  end
  register HardcoreExtension
end

About

Some extensions to the sinatra default behavior (usefull for other Sintatra extensions, extracted from BigBand).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages