module ROM::LDAP::Directory::Tokenization
Parsing Formats
@api private
Public Class Methods
included(klass)
click to toggle source
Allows adapters that subclass Directory
to use custom parsers. Extends the class with filter abstraction behavior.
@api private
# File lib/rom/ldap/directory/tokenization.rb, line 19 def self.included(klass) klass.class_eval do extend Dry::Core::ClassAttributes defines :attribute_class attribute_class Parsers::Attribute defines :filter_class filter_class Parsers::FilterSyntax defines :ast_class ast_class Parsers::AbstractSyntax end end
Private Instance Methods
to_attribute(attr_def)
click to toggle source
Create parsed attribute from definiton.
@param attr_def [String]
@return [Hash]
# File lib/rom/ldap/directory/tokenization.rb, line 59 def to_attribute(attr_def) self.class.attribute_class.new(attr_def).call end
to_expression(input)
click to toggle source
Convert abstract criteria or LDAP
filter into an expression object.
Check for parsed attributes to prevent recursion.
@param input [Array, String] RFC2254 or AST
# File lib/rom/ldap/directory/tokenization.rb, line 41 def to_expression(input) attrs = !@attribute_types.nil? ? attribute_types : EMPTY_ARRAY # Filter > AST unless input.is_a?(Array) input = self.class.filter_class.new(input, attrs).call end # AST > Expression self.class.ast_class.new(input, attrs).call end