123456789_123456789_123456789_123456789_123456789_

Module: ActionDispatch::Http::FilterRedirect

Constant Summary

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#location_filter_match?Boolean (readonly, private)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 27

def location_filter_match?
  location_filters.any? do |filter|
    if String === filter
      location.include?(filter)
    elsif Regexp === filter
      location.match?(filter)
    end
  end
end

Instance Method Details

#filtered_location

This method is for internal use only.
[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 10

def filtered_location # :nodoc:
  if location_filter_match?
    FILTERED
  else
    parameter_filtered_location
  end
end

#location_filters (private)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 19

def location_filters
  if request
    request.get_header("action_dispatch.redirect_filter") || []
  else
    []
  end
end

#parameter_filtered_location (private)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 37

def parameter_filtered_location
  uri = URI.parse(location)
  unless uri.query.nil? || uri.query.empty?
    uri.query.gsub!(FilterParameters::PAIR_RE) do
      request.parameter_filter.filter($1 => $2).first.join("=")
    end
  end
  uri.to_s
rescue URI::Error
  FILTERED
end