Write LDAP search filters in Ruby. Awesomeness courtesy of Chris Wanstrath’s Ambition library.
You must be using ActiveLdap 0.9 or greater.
$ sudo gem install ambitious-activeldap
require 'rubygems' require 'ambition/adapters/active_ldap'
Let User be a subclass of ActiveLdap::Base
User.select { |u| u.givenName == ‘Severian’ }.each do |user|
puts user.name
end
Queries don’t run until you kick them. This adapter supports only the basic kicker methods: each, each_with_index, map, entries, to_a.
This adapter also doesn’t support the methods that require sorting, slicing, or counting, because OpenLDAP effectively doesn’t support such things. ActiveLdap lets you request sorted and sliced result sets, but it does the work in Ruby, so you might as well do it yourself.
You can call to_s, but not to_hash on a query. to_s returns the LDAP search filter as a string.
>> User.select { |m| m.givenName == ‘Jonas’ }.to_s
=> “(givenName=Jonas)”
Found a bug? Sweet. Add it at the Lighthouse.
More information on Ambition: