Class: StatusCodeParser

Inherits:
Object
  • Object
show all
Defined in:
lib/fluent/plugin/out_http_ext.rb

Class Method Summary collapse

Class Method Details

.convert(range_str) ⇒ Object



55
56
57
58
59
60
61
# 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) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# 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) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/fluent/plugin/out_http_ext.rb', line 40

def self.number?(str)
  return /^\d{3}$/ =~ str ? true : false
end

.range?(str) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
# 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