module Mongrel2::Config::DSL

See DSL.md for details on how to use this mixin.

Public Instance Methods

mimetype( extension, mimetype ) click to toggle source

Set up a mimetype mapping between files with the given extension and mimetype.

# File lib/mongrel2/config/dsl.rb, line 140
def mimetype( extension, mimetype )
        Mongrel2::Config.init_database

        type = Mongrel2::Config::Mimetype.find_or_create( extension: extension )
        type.mimetype = mimetype
        type.save

        return type
end
mimetypes( hash ) click to toggle source

Set some mimetypes en masse.

# File lib/mongrel2/config/dsl.rb, line 152
def mimetypes( hash )
        result = []

        Mongrel2::Config.db.transaction do
                hash.each do |ext, mimetype|
                        result << mimetype( ext, mimetype )
                end
        end

        return result
end
server( uuid, &block ) click to toggle source

Create a Mongrel2::Config::Server with the specified uuid, evaluate the block (if given) within its context, and return it.

# File lib/mongrel2/config/dsl.rb, line 85
def server( uuid, &block )
        adapter = nil

        Mongrel2.log.info "Ensuring db is set up..."
        Mongrel2::Config.init_database

        Mongrel2.log.info "Entering transaction for server %p" % [ uuid ]
        Mongrel2::Config.db.transaction do

                Mongrel2.log.debug "Server [%s] (block: %p)" % [ uuid, block ]
                adapter = Adapter.new( Mongrel2::Config::Server, uuid: uuid ) do |server|
                    server.access_log   ||= "/logs/access.log"
                    server.error_log    ||= "/logs/error.log"
                    server.pid_file     ||= "/run/mongrel2.pid"
                    server.default_host ||= "localhost"
                    server.port         ||= 8888

                        server.hosts.each( &:destroy )
                        server.filters.each( &:destroy )
                        server.xrequests.each( &:destroy )
                end
                adapter.instance_eval( &block ) if block

                Mongrel2.log.info "  saving server %p..." % [ uuid ]
                adapter.target.save
        end

        return adapter.target
end
setting( key, val ) click to toggle source

Set the value of one of the 'Tweakable Expert Settings'

# File lib/mongrel2/config/dsl.rb, line 117
def setting( key, val )
        Mongrel2::Config.init_database
        setting = Mongrel2::Config::Setting.find_or_create( key: key )
        setting.value = val
        setting.save
end
settings( hash ) click to toggle source

Set some 'Tweakable Expert Settings' en masse

# File lib/mongrel2/config/dsl.rb, line 126
def settings( hash )
        result = []

        Mongrel2::Config.db.transaction do
                hash.each do |key, val|
                        result << setting( key, val )
                end
        end

        return result
end