Class: Net::IP::Rule::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ip/rule/parser.rb

Class Method Summary collapse

Class Method Details

.parse(data) ⇒ Object



20
21
22
23
24
25
26
# 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) ⇒ Hash

Parse a rule entry into a hash

Parameters:

  • line (String)

Returns:

  • (Hash)


9
10
11
12
13
14
15
16
17
18
# 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