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