class StatusCodeParser

Public Class Methods

convert(range_str) click to toggle source
# File lib/fluent/plugin/out_http_ext.rb, line 55
def self.convert(range_str)
  elems = range_str.split(',')
  status_codes = elems.flat_map do |elem|
    self.get_array(elem)
  end
  return status_codes.to_set
end
get_array(str) click to toggle source
# File lib/fluent/plugin/out_http_ext.rb, line 44
def self.get_array(str)
  if self.range?(str)
    ends = str.split('..').map{|d| Integer(d)}
    return (ends[0]..ends[1]).to_a
  elsif self.number?(str)
    return [str.to_i]
  else
    raise "invalid status code range format"
  end
end
number?(str) click to toggle source
# File lib/fluent/plugin/out_http_ext.rb, line 40
def self.number?(str)
  return /^\d{3}$/ =~ str ? true : false
end
range?(str) click to toggle source
# File lib/fluent/plugin/out_http_ext.rb, line 35
def self.range?(str)
   # i.e. 200..399 => return true
  return /^\d{3}..\d{3}$/ =~ str ? true : false
end