Sha256: 7382ba68c32db6d7cb45608eafdbec515bc8a9a1e03dc0c5bc7aeab902eb3a9d
Contents?: true
Size: 845 Bytes
Versions: 2
Compression:
Stored size: 845 Bytes
Contents
require 'sinatra/base' require 'mongo' module Sinatra module MongoHelper def mongo options.mongo end end module MongoExtension def mongo=(url) @mongo = nil set :mongo_url, url mongo end def mongo synchronize do @mongo ||= ( url = URI(mongo_url) connection = Mongo::Connection.new(url.host, url.port) mongo = connection.db(url.path[1..-1], mongo_settings) if url.user && url.password mongo.authenticate(url.user, url.password) end mongo ) end end protected def self.registered(app) app.set :mongo_url, ENV['MONGO_URL'] || 'mongo://127.0.0.1:27017/default' app.set :mongo_settings, Hash.new app.helpers MongoHelper end end register MongoExtension end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
sinatra-mongo-0.1.0 | lib/sinatra/mongo.rb |
bmizerany-sinatra-mongo-0.0.3 | lib/sinatra/mongo.rb |