class Fluoride::Analyzer::Patterner::Rails4

Public Instance Methods

build(env) click to toggle source
# 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
#          require 'pp'
#          puts "\n#{__FILE__}:#{__LINE__} => #{{
#            :req => req, :route => route, :matches => matches, :params => params,
#              :rails_route => rails_route,
#              :path_spec => path_spec,
#              :segment_keys => segment_keys
#          }.pretty_inspect}"
#
          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) click to toggle source
# File lib/fluoride-analyzer/patterner.rb, line 82
def build_request(request_env)
  ActionDispatch::Request.new(base_env.merge(request_env))
end
route_set() click to toggle source
# File lib/fluoride-analyzer/patterner.rb, line 74
def route_set
  @route_set ||=
    begin
      set = Rails.application.routes.router
      set
    end
end