Module: Enumpath::Operator
- Defined in:
- lib/enumpath/operator.rb,
lib/enumpath/operator/base.rb,
lib/enumpath/operator/child.rb,
lib/enumpath/operator/slice.rb,
lib/enumpath/operator/union.rb,
lib/enumpath/operator/wildcard.rb,
lib/enumpath/operator/filter_expression.rb,
lib/enumpath/operator/recursive_descent.rb,
lib/enumpath/operator/subscript_expression.rb
Overview
Namespace for classes that represent path expression operators
Defined Under Namespace
Classes: Base, Child, FilterExpression, RecursiveDescent, Slice, SubscriptExpression, Union, Wildcard
Constant Summary collapse
- ROOT =
'$'
Class Method Summary collapse
-
.detect(operator, enum) ⇒ Object
Infer the type of operator and return an instance of its Enumpath::Operator subclass.
Class Method Details
.detect(operator, enum) ⇒ Object
Infer the type of operator and return an instance of its Enumpath::Operator subclass
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/enumpath/operator.rb', line 24 def detect(operator, enum) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity return operator(:Child, operator) if child?(operator, enum) return operator(:Wildcard, operator) if wildcard?(operator) return operator(:RecursiveDescent, operator) if recursive_descent?(operator) return operator(:Union, operator) if union?(operator) return operator(:SubscriptExpression, operator) if subscript_expression?(operator) return operator(:FilterExpression, operator) if filter_expression?(operator) return operator(:Slice, operator) if slice?(operator) Enumpath.log('Not a valid operator for enum') nil end |