module ROM::LDAP::Dataset::Conversion

Parsing Formats

@api public

Public Class Methods

included(klass) click to toggle source

Extends the class with filter abstraction behavior.

@api private

# File lib/rom/ldap/dataset/conversion.rb, line 17
def self.included(klass)
  klass.class_eval do
    extend Dry::Core::ClassAttributes

    defines :filter_class
    filter_class Parsers::FilterSyntax

    defines :ast_class
    ast_class Parsers::AbstractSyntax
  end
end

Public Instance Methods

to_ast() click to toggle source

Combine original relation dataset name (LDAP filter string)

with search criteria (AST).

@return [Array]

@api private

# File lib/rom/ldap/dataset/conversion.rb, line 44
def to_ast
  criteria.empty? ? source_ast : [:con_and, [source_ast, criteria]]
end
to_filter() click to toggle source

Convert the full query to an LDAP filter string

@return [String]

@api private

# File lib/rom/ldap/dataset/conversion.rb, line 34
def to_filter
  self.class.ast_class.new(to_ast, directory.attribute_types).call.to_filter
end

Private Instance Methods

source_ast() click to toggle source

Convert the relation's source filter string to a query AST.

@return [Array]

@api private

# File lib/rom/ldap/dataset/conversion.rb, line 55
def source_ast
  self.class.filter_class.new(name, directory.attribute_types).call
end