lib/whimsy/asf/ldap.rb in whimsy-asf-0.0.56 vs lib/whimsy/asf/ldap.rb in whimsy-asf-0.0.57
- old
+ new
@@ -10,10 +10,11 @@
end
# determine whether or not the LDAP API can be used
def self.init_ldap
@ldap = nil
+ @mtime = Time.now
host = ASF::LDAP.host
Wunderbar.info "Connecting to LDAP server: #{host}"
@@ -50,18 +51,33 @@
result.map! {|hash| hash[attrs]} if String === attrs
result
end
+ def self.refresh(symbol)
+ p @mtime
+ if Time.now - @mtime > 300.0
+ @mtime = Time.now
+ end
+
+ if instance_variable_get("#{symbol}_mtime") != @mtime
+ instance_variable_set("#{symbol}_mtime", @mtime)
+ instance_variable_set(symbol, nil)
+ end
+ end
+
def self.pmc_chairs
+ refresh(:@pmc_chairs)
@pmc_chairs ||= Service.find('pmc-chairs').members
end
def self.committers
+ refresh(:@committers)
@committers ||= Group.find('committers').members
end
def self.members
+ refresh(:@members)
@members ||= Group.find('member').members
end
class Base
attr_reader :name