Module: Mongrel2::Config::DSL

Defined in:
lib/mongrel2/config/dsl.rb

Overview

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

Defined Under Namespace

Classes: Adapter

Instance Method Summary collapse

Instance Method Details

#mimetype(extension, mimetype) ⇒ Object

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



141
142
143
144
145
146
147
148
149
# File 'lib/mongrel2/config/dsl.rb', line 141

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) ⇒ Object

Set some mimetypes en masse.



153
154
155
156
157
158
159
160
161
162
163
# File 'lib/mongrel2/config/dsl.rb', line 153

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) ⇒ Object

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



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/mongrel2/config/dsl.rb', line 86

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) ⇒ Object

Set the value of one of the ‘Tweakable Expert Settings’



118
119
120
121
122
123
# File 'lib/mongrel2/config/dsl.rb', line 118

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) ⇒ Object

Set some ‘Tweakable Expert Settings’ en masse



127
128
129
130
131
132
133
134
135
136
137
# File 'lib/mongrel2/config/dsl.rb', line 127

def settings( hash )
	result = []

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

	return result
end