Module: Mongrel2::Config::DSL

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

Overview

See DSL.rdoc 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.



147
148
149
150
151
152
153
154
155
# File 'lib/mongrel2/config/dsl.rb', line 147

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.



159
160
161
162
163
164
165
166
167
168
169
# File 'lib/mongrel2/config/dsl.rb', line 159

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.



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/mongrel2/config/dsl.rb', line 91

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

		# Set up the options hash with the UUID and reasonable defaults
		# for everything else
		server_opts = {
			uuid:         uuid,
		    access_log:   "/logs/access.log",
		    error_log:    "/logs/error.log",
		    pid_file:     "/run/mongrel2.pid",
		    default_host: "localhost",
		    port:         8888,
		}

		Mongrel2.log.debug "Server [%s] (block: %p)" % [ uuid, block ]
		adapter = Adapter.new( Mongrel2::Config::Server, server_opts )
		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’



124
125
126
127
128
129
# File 'lib/mongrel2/config/dsl.rb', line 124

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



133
134
135
136
137
138
139
140
141
142
143
# File 'lib/mongrel2/config/dsl.rb', line 133

def settings( hash )
	result = []

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

	return result
end