class Fluoride::Analyzer::GroupCollapser

Attributes

letname_map[R]
method[R]
status[R]

Public Class Methods

new(pattern, letname_map, method, status, requests_list) click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 5
def initialize(pattern, letname_map, method, status, requests_list)
  @pattern = pattern
  @letname_map = letname_map
  @request_list = requests_list
  @method, @status = method, status
end

Public Instance Methods

each_group_context() { |group_context| ... } click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 36
def each_group_context
  path_tuples = requests.map do |request|
    [request['path'], request['query_params'], request]
  end

  reduced_hash = Hash.new{|h,k| h[k] = []}
  path_tuples.each do |path, query, request|
    reduced_hash[ [ reduce_path(path, request), reduce_query(query, request) ] ] << request
  end

  reduced_hash.each do |(path, query_params), requests|
    next if status == 304
    yield GroupContext.new(method, status, requests, path, query_params)
  end
end
reduce_path(path, request) click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 21
def reduce_path(path, request)
  path = @pattern.dup
  request['path_params'].each_pair do |name, value|
    next if stet_list.include?(name)
    target_name = letname_map.fetch(name, name)
    path.sub!(/:#{name}/,"\#{#{target_name}}")
  end
  path
end
reduce_query(query, request) click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 31
def reduce_query(query, request)
  ""
  #none captured (yet?)
end
requests() click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 17
def requests
  @request_list
end
stet_list() click to toggle source
# File lib/fluoride-analyzer/group-collapser.rb, line 13
def stet_list
  []
end