Method: AD::Framework::Patterns::Searchable::ClassMethods#build_ad_search_args

Defined in:
lib/ad-framework/patterns/searchable.rb

#build_ad_search_args(args = {}) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/ad-framework/patterns/searchable.rb', line 68

def build_ad_search_args(args = {})
  default_args = {
    :objectclass__eq => self.schema.ldap_name,
    :base => self.schema.treebase
  }
  (args || {}).inject(default_args) do |search_args, (key, value)|
    case(key.to_sym)
    when :where
      if value.kind_of?(Array)
        value = value.inject({}){|where, condition| where.merge(condition) }
      end
      search_args.merge(value)
    when :limit
      search_args.merge({ :size => value })
    else
      search_args.merge({ key => value })
    end
  end
end