Class: ExpressionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/claws/engine.rb

Class Method Summary collapse

Class Method Details

.get_engineObject

rubocop:disable Naming/AccessorMethodName, Metrics/AbcSize



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/claws/engine.rb', line 8

def self.get_engine # rubocop:disable Naming/AccessorMethodName, Metrics/AbcSize
  EquationEngine.new(
    default: {
      # workflow: workflow,
      # jobs: workflow["jobs"],
      # data: rules["data"],
    },
    methods: {
      contains: ->(haystack, needle) { !haystack.nil? and haystack.include? needle },
      contains_any: ->(haystack, needles) { !haystack.nil? and needles.any? { |n| haystack.include? n } },
      startswith: ->(string, needle) { string.to_s.start_with? needle },
      endswith: ->(string, needle) { string.to_s.end_with? needle },
      difference: ->(arr1, arr2) { arr1.difference arr2 },
      count: ->(n) { n.length }
    }
  )
end

.parse_expression(expression) ⇒ Object



4
5
6
# File 'lib/claws/engine.rb', line 4

def self.parse_expression(expression)
  get_engine.parse(rule: expression)
end