Class: Core::Filtering::SimpleRules::SimpleRulesParser

Inherits:
Object
  • Object
show all
Defined in:
lib/core/filtering/simple_rules/simple_rules_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ SimpleRulesParser

Returns a new instance of SimpleRulesParser.



16
17
18
# File 'lib/core/filtering/simple_rules/simple_rules_parser.rb', line 16

def initialize(rules)
  @rules = (rules || []).map(&:with_indifferent_access).filter { |r| r[:id] != 'DEFAULT' }.sort_by { |r| r[:order] }
end

Instance Method Details

#parseObject



20
21
22
23
24
25
26
27
28
# File 'lib/core/filtering/simple_rules/simple_rules_parser.rb', line 20

def parse
  merge_rules(@rules.map do |rule_hash|
    rule = Core::Filtering::SimpleRule.new(rule_hash)
    unless rule.is_include? || rule.is_exclude?
      raise "Unknown policy: #{rule.policy}"
    end
    parse_rule(rule)
  end)
end