class Net::IP::Rule::Parser

Public Class Methods

parse(data) click to toggle source
# File lib/net/ip/rule/parser.rb, line 20
def self.parse(data)
  list = []
  data.split("\n").each do |line|
    list << parse_line(line)
  end
  list
end
parse_line(line) click to toggle source

Parse a rule entry into a hash

@param line {String} @return {Hash}

# File lib/net/ip/rule/parser.rb, line 9
def self.parse_line(line)
  params = {}
  params[:priority] = $1 if line =~ /^(\d+):\t/
  params[:from] = $1 if line =~ /\s+from\s+([^\s]+)\s+/
  params[:to] = $1 if line =~ /\s+to\s+([^\s]+)\s+/
  params[:lookup] = $1 if line =~ /\s+lookup\s+([^\s]+)\s+/
  params[:realms] = $1 if line =~ /\s+realms\s+([^\s]+)\s+/
  params[:map_to] = $1 if line =~ /\s+map-to\s+([^\s]+)\s+/
  params
end