Class: Ruby::Rego::Evaluator::VariableCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/evaluator/variable_collector.rb

Overview

Collects variable names referenced in expressions and query literals. :reek:TooManyMethods

Instance Method Summary collapse

Constructor Details

#initializeVariableCollector

Returns a new instance of VariableCollector.



140
141
142
143
# File 'lib/ruby/rego/evaluator/variable_collector.rb', line 140

def initialize
  @names = [] # @type var @names: Array[String]
  @local_scopes = [] # @type var @local_scopes: Array[Array[String]]
end

Instance Method Details

#collect(node) ⇒ Array<String>

Parameters:

  • node (Object)

Returns:

  • (Array<String>)


147
148
149
150
# File 'lib/ruby/rego/evaluator/variable_collector.rb', line 147

def collect(node)
  collect_node(node)
  names
end

#collect_literals(literals) ⇒ Array<String>

Parameters:

  • literals (Array<Object>)

Returns:

  • (Array<String>)


154
155
156
157
# File 'lib/ruby/rego/evaluator/variable_collector.rb', line 154

def collect_literals(literals)
  Array(literals).each { |literal| collect_node(literal) }
  names
end