Class: TextFSM::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/textfsm/rule.rb

Constant Summary collapse

OPERATIONS =
(LINE_ACTIONS.keys + RECORD_ACTIONS.keys).freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(line, line_number:, fields:) ⇒ Rule

Returns a new instance of Rule.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/textfsm/rule.rb', line 21

def initialize(line, line_number:, fields:)
  @line_number = line_number
  @line_action = :next
  @record_action = :no_record
  @next_state = @error_message = nil
  @action_source = ""
  line = line.strip
  action = /\A(.*)\s->(.*)\z/.match(line)
  @source = (action ? action[1] : line).freeze
  @pattern = Pattern.new(substitute(@source, fields))
  parse_action(action[2]) if action
  freeze
rescue TemplateError => e
  raise TemplateError, "#{e.message}. Line: #{@line_number}."
end

Instance Attribute Details

#error_message ⇒ Object (readonly)

Returns the value of attribute error_message.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def error_message
  @error_message
end

#line_action ⇒ Object (readonly)

Returns the value of attribute line_action.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def line_action
  @line_action
end

#line_number ⇒ Object (readonly)

Returns the value of attribute line_number.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def line_number
  @line_number
end

#next_state ⇒ Object (readonly)

Returns the value of attribute next_state.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def next_state
  @next_state
end

#pattern ⇒ Object (readonly)

Returns the value of attribute pattern.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def pattern
  @pattern
end

#record_action ⇒ Object (readonly)

Returns the value of attribute record_action.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def record_action
  @record_action
end

#source ⇒ Object (readonly)

Returns the value of attribute source.



19
20
21
# File 'lib/textfsm/rule.rb', line 19

def source
  @source
end

Instance Method Details

#to_s ⇒ Object



37
38
39
# File 'lib/textfsm/rule.rb', line 37

def to_s
  "  #{@source}#{" -> #{@action_source}" unless @action_source.empty?}"
end