Sha256: 9b4e363bdbcc2d5a3e0b6a9a1fc1ae3357ec62dabc1b4fb16c68d993583fb4c6
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
class Institution < Struct.new(:display_name, :name, :default, :application_layout, :ip_addresses, :parent_institution, :view_attributes, :login_attributes) require 'ipaddr' # Better initializer than Struct gives us, take a hash instead # of an ordered array. :services=>[] is an array of service ids, # not actual Services! def initialize(h={}) members.each {|m| self.send( ("#{m}=").to_sym , (h.delete("#{m}".to_sym) || h.delete("#{m}"))) } # If the institution is named default, take that as an # indication that it's the default institution self.default= true if name == "default" or name == "DEFAULT" self.default= false unless default # Log the fact that there are left overs in the hash # Rails.logger.warn("The following institution settings were ignored: #{h.inspect}.") unless h.empty? end # Instantiates a new copy of all services included in this institution, # returns an array. def instantiate_services! services.collect {|s| } end # Check the list of IP addresses for the given IP def includes_ip?(prospective_ip_address) return false if ip_addresses.nil? ip_prospect = IPAddr.new(prospective_ip_address) ip_addresses.each do |ip_address| ip_range = (ip_address.match(/[\-\*]/)) ? (ip_address.match(/\-/)) ? (IPAddr.new(ip_address.split("-")[0])..IPAddr.new(ip_address.split("-")[1])) : (IPAddr.new(ip_address.gsub(/\*/, "0"))..IPAddr.new(ip_address.gsub(/\*/, "255"))) : IPAddr.new(ip_address).to_range return true if ip_range === ip_prospect unless ip_range.nil? end return false; end def to_h h = {} members.each {|m| h[m.to_sym] = self.send(m)} h end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
authpds-0.0.18 | lib/authpds/institution.rb |
authpds-0.0.17 | lib/authpds/institution.rb |