Class: Rackr::Router::PathRoute

Inherits:
Route
  • Object
show all
Defined in:
lib/rackr/router/path_route.rb

Overview

Path route is a route that has a path value that can be matched, and may have path params

Instance Attribute Summary collapse

Attributes inherited from Route

#afters, #befores, #endpoint, #has_afters, #has_befores

Instance Method Summary collapse

Constructor Details

#initialize(path, endpoint, befores: [], afters: [], wildcard: false) ⇒ PathRoute

Returns a new instance of PathRoute.



10
11
12
13
14
15
16
17
18
19
# File 'lib/rackr/router/path_route.rb', line 10

def initialize(path, endpoint, befores: [], afters: [], wildcard: false)
  super(endpoint, befores:, afters:)

  @path = path
  @splitted_path = @path.split('/')
  @params = fetch_params
  @has_params = @params != []
  @path_regex = /\A#{path.gsub(/(:\w+)/, '([^/]+)')}\z/
  @wildcard = wildcard
end

Instance Attribute Details

#has_paramsObject (readonly)

Returns the value of attribute has_params.



7
8
9
# File 'lib/rackr/router/path_route.rb', line 7

def has_params
  @has_params
end

#splitted_pathObject (readonly)

Returns the value of attribute splitted_path.



7
8
9
# File 'lib/rackr/router/path_route.rb', line 7

def splitted_path
  @splitted_path
end

Instance Method Details

#match?(path_info) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
# File 'lib/rackr/router/path_route.rb', line 21

def match?(path_info)
  return path_info.match?(@path_regex) if @has_params
  return true if @wildcard

  path_info == @path
end