Class: Mongrel2::Config::Route

Inherits:
Object
  • Object
show all
Extended by:
Loggability
Defined in:
lib/mongrel2/config/route.rb

Overview

Mongrel2 Route configuration class

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.for_request(request) ⇒ Object

Return the Route that corresponds to the given request.



23
24
25
26
27
28
# File 'lib/mongrel2/config/route.rb', line 23

def self::for_request( request )
	pattern = request.headers.pattern
	self.log.debug "Searching for the route for the path %p in %p" %
		[ pattern, self.all ]
	return self.filter( path: pattern ).first
end

Instance Method Details

#hostObject

The Mongrel2::Config::Host this route belongs to.



37
# File 'lib/mongrel2/config/route.rb', line 37

many_to_one :host

#targetObject

Fetch the route’s target, which is either a Mongrel2::Config::Directory, Mongrel2::Config::Proxy, or Mongrel2::Config::Handler object.



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/mongrel2/config/route.rb', line 42

def target
	case self.target_type
	when 'dir'
		return Mongrel2::Config::Directory[ self.target_id ]
	when 'proxy'
		return Mongrel2::Config::Proxy[ self.target_id ]
	when 'handler'
		return Mongrel2::Config::Handler[ self.target_id ]
	else
		raise ArgumentError, "unknown target type %p" % [ self.target_type ]
	end
end

#target=(object) ⇒ Object

Set the target of the route to object, which should be one of the classes returned from #target.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/mongrel2/config/route.rb', line 58

def target=( object )
	case object
	when Mongrel2::Config::Directory
		self.target_type = 'dir'
	when Mongrel2::Config::Proxy
		self.target_type = 'proxy'
	when Mongrel2::Config::Handler
		self.target_type = 'handler'
	else
		raise ArgumentError, "unknown target type %p" % [ object.class ]
	end

	self.target_id = object.id
end