class Explainer

Attributes

expression_map[RW]

Public Class Methods

inherited(sub_klass) click to toggle source
# File lib/utils/kube_config_parser/explainer.rb, line 11
def self.inherited(sub_klass)
  sub_klass.class_eval do
    def self.register_expression(reg_exp)
      Explainer.expression_map[reg_exp] = self
    end
  end
end
new(paragraph) click to toggle source
# File lib/utils/kube_config_parser/explainer.rb, line 19
def initialize(paragraph)
  @paragraph = paragraph
end
register_expression(reg_exp) click to toggle source
# File lib/utils/kube_config_parser/explainer.rb, line 13
def self.register_expression(reg_exp)
  Explainer.expression_map[reg_exp] = self
end

Public Instance Methods

explain(lines) click to toggle source
# File lib/utils/kube_config_parser/explainer.rb, line 23
def explain(lines)
  new_lines = []

  while not lines.empty?
    line = lines[0]

    matched_explainer_expression = self.class.expression_map.keys.find do |key|
      line.match(key)
    end

    if matched_explainer_expression
      matched_explainer = self.class.expression_map[matched_explainer_expression]
      lines = matched_explainer.handle(lines)
    else
      new_lines << lines.shift
    end
  end

  return new_lines
end