Sha256: 90e8c46d5f549052d4875fea73d7d7cf3a332a6e0e565f9cee151a5271f07d4c
Contents?: true
Size: 1.9 KB
Versions: 1
Compression:
Stored size: 1.9 KB
Contents
class InstitutionList include Singleton # get the instance with InstitutionList.instance @@institutions_yaml_path = nil def initialize @institutions = nil end # Used for initialization and testing def self.yaml_path=(path) @@institutions_yaml_path = path self.instance.reload end def self.institutions_defined? return !@@institutions_yaml_path.nil? end # Returns an Institution def get(name) return institutions[name] end # Returns an array of Institutions def defaults return institutions.values.find_all {|institution| institution.default == true} end # Returns an array of Institutions def institutions_with_ip(ip) return institutions.values.find_all { |institution| institution.includes_ip?(ip) } end # Reload institutions from the YAML file. def reload @institutions = nil institutions true end # Load institutions from the YAML file and return as a hash. def institutions unless @institutions raise ArgumentError.new("institutions_yaml_path was not specified.") if @@institutions_yaml_path.nil? raise NameError.new( "The file #{@@institutions_yaml_path} does not exist. "+ "In order to use the institution feature you must create the file." ) unless File.exists?(@@institutions_yaml_path) institution_list = YAML.load_file( @@institutions_yaml_path ) @institutions = {} # Turn the institution hashes to Institutions institution_list.each_pair do |institution_name, institution_hash| institution_hash["name"] = institution_name # Merge with parent institution institution_hash = institution_list[institution_hash["parent_institution"]]. merge(institution_hash) unless institution_hash["parent_institution"].nil? @institutions[institution_name] = Institution.new(institution_hash) end end return @institutions end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
authpds-0.0.16 | lib/authpds/institution_list.rb |