Class: Fluoride::Analyzer::Patterner::Rails4

Inherits:
Fluoride::Analyzer::Patterner show all
Defined in:
lib/fluoride-analyzer/patterner.rb

Instance Attribute Summary

Attributes inherited from Fluoride::Analyzer::Patterner

#rails_routes

Instance Method Summary collapse

Methods inherited from Fluoride::Analyzer::Patterner

#base_env, for, #initialize, #route_map

Constructor Details

This class inherits a constructor from Fluoride::Analyzer::Patterner

Instance Method Details

#build(env) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/fluoride-analyzer/patterner.rb', line 86

def build(env)
  req = build_request(env)
  pattern = nil
  route_set.recognize(req) do |route, matches, params|
    rails_route = route_map[route]

    path_spec = :unrecognized
    segment_keys = {}

    if route_map.has_key?(route)
      rails_route = route_map[route]
      path_spec = rails_route.path.spec.to_s
      segment_keys = rails_route.segment_keys
    end

    pattern = RoutePattern.new(route, matches, params, path_spec, segment_keys)
  end
  if pattern.nil?
    pattern = RoutePattern.new(nil,nil,nil,nil,nil)
  end
  pattern
end

#build_request(request_env) ⇒ Object



82
83
84
# File 'lib/fluoride-analyzer/patterner.rb', line 82

def build_request(request_env)
  ActionDispatch::Request.new(base_env.merge(request_env))
end

#route_setObject



74
75
76
77
78
79
80
# File 'lib/fluoride-analyzer/patterner.rb', line 74

def route_set
  @route_set ||=
    begin
      set = Rails.application.routes.router
      set
    end
end