class SiteguardLite::CustomSignature::TextLineParser
Constants
- FILTER_ACTION_REGEX
Public Instance Methods
parse(line)
click to toggle source
siteguardlite-320-0_nginx.pdf, p.52
- 有効・無効]<タブ><タブ><タブ><タブ>[検査対象
-
<タブ><タブ> [検査文字列]<タブ><タブ>
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 8 def parse(line) fields = line.split("\t") { enable: enable(fields[0]), action: parse_action(fields[1]), filter_lifetime: parse_filter_lifetime(fields[1]), name: fields[3], comment: fields[8], exclusion_action: exclusion_action(fields[5]), signature: signature(fields[5]), condition: { key: fields[4], comparison_methods: comparison_methods(fields[5]), value: fields[6], } } end
Private Instance Methods
comparison_methods(comparison_str)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 40 def comparison_methods(comparison_str) parse_comparison_str(comparison_str)[:comparison_methods] end
enable(str)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 28 def enable(str) str == 'ON' end
exclusion_action(comparison_str)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 32 def exclusion_action(comparison_str) parse_comparison_str(comparison_str)[:exclusion_action] end
parse_action(parsed_action)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 67 def parse_action(parsed_action) case parsed_action when FILTER_ACTION_REGEX 'FILTER' else parsed_action end end
parse_comparison_str(str)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 44 def parse_comparison_str(str) return @parsed_comarison_str if @parsed_comparison_str result = { comparison_methods: [], exclusion_action: nil, signature: nil, } # TODO: Make it possible to handle other comparison methods and exclusion actions str.split(',').each do |part| case part when /\AEXCLUDE_OFFICIAL\((.+)\)\z/ result[:exclusion_action] = 'EXCLUDE_OFFICIAL' result[:signature] = Regexp.last_match(1) else result[:comparison_methods] << part end end @parsed_comarison_str = result end
parse_filter_lifetime(parsed_action)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 76 def parse_filter_lifetime(parsed_action) parsed_action =~ FILTER_ACTION_REGEX ? $1 : nil end
signature(comparison_str)
click to toggle source
# File lib/siteguard_lite/custom_signature/text_line_parser.rb, line 36 def signature(comparison_str) parse_comparison_str(comparison_str)[:signature] end