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

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

Instance Attribute Summary

Attributes inherited from Fluoride::Analyzer::Parser::Patterner

#rails_routes

Instance Method Summary collapse

Methods inherited from Fluoride::Analyzer::Parser::Patterner

#base_env, for, #initialize, #route_map

Constructor Details

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

Instance Method Details

#build(env) ⇒ Object



180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/fluoride-analyzer/parser.rb', line 180

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



176
177
178
# File 'lib/fluoride-analyzer/parser.rb', line 176

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

#route_setObject



168
169
170
171
172
173
174
# File 'lib/fluoride-analyzer/parser.rb', line 168

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