Class: Utopia::Controller::Rewrite::ExtractPrefixRule

Inherits:
Rule
  • Object
show all
Defined in:
lib/utopia/controller/rewrite.rb

Overview

A rule which extracts a prefix pattern from the request path.

Instance Method Summary collapse

Methods inherited from Rule

#apply_match_to_context

Constructor Details

#initialize(patterns, block) ⇒ ExtractPrefixRule

Returns a new instance of ExtractPrefixRule.



48
49
50
51
# File 'lib/utopia/controller/rewrite.rb', line 48

def initialize(patterns, block)
	@matcher = Path::Matcher.new(patterns)
	@block = block
end

Instance Method Details

#apply(context, request, path) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/utopia/controller/rewrite.rb', line 60

def apply(context, request, path)
	if match_data = @matcher.match(path)
		apply_match_to_context(match_data, context)
		
		if @block
			context.instance_exec(request, path, match_data, &@block)
		end
		
		return match_data.post_match
	else
		return path
	end
end

#freezeObject



53
54
55
56
57
58
# File 'lib/utopia/controller/rewrite.rb', line 53

def freeze
	@matcher.freeze
	@block.freeze
	
	super
end