Class: Zm::Client::LdapFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/zm/client/base/ldap_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_filter = nil) ⇒ LdapFilter

Returns a new instance of LdapFilter.



6
7
8
9
# File 'lib/zm/client/base/ldap_filter.rb', line 6

def initialize(base_filter = nil)
  @base_filter = base_filter
  @parts = []
end

Instance Method Details

#add(filter) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/zm/client/base/ldap_filter.rb', line 11

def add(filter)
  if filter.is_a?(String) && !filter.empty?
    @parts << filter
  elsif filter.is_a?(Hash)
    @parts += filter.map { |k, v| "(#{k}=#{v})" }
  end
end

#clearObject



19
20
21
# File 'lib/zm/client/base/ldap_filter.rb', line 19

def clear
  @parts.clear
end

#joinObject



23
24
25
26
27
28
29
30
# File 'lib/zm/client/base/ldap_filter.rb', line 23

def join
  arr = @parts.dup
  arr.unshift(@base_filter) unless @base_filter.nil?

  return arr.first if arr.length <= 1

  "(&#{arr.join})"
end