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.



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