Sha256: e1cde8a3c635e9461b62c34194b83b1502935ebe4a8c7f8105c43032a38d3dbe
Contents?: true
Size: 1.54 KB
Versions: 4
Compression:
Stored size: 1.54 KB
Contents
class Institution < Struct.new(:display_name, :name, :default_institution, :application_layout, :ip_addresses, :parent_institution, :view_attributes, :login_attributes) # 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={}, controller) members.each {|m| self.send( ("#{m}=").to_sym , (h.delete(m.to_sym) || h.delete(m))) } default_institution = false unless default_institution # 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? require 'ipaddr' 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])) : (ip_address.gsub(/\*/, "0")..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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
authpds-0.0.4 | lib/authpds/institution.rb |
authpds-0.0.3 | lib/authpds/institution.rb |
authpds-0.0.2 | lib/authpds/institution.rb |
authpds-0.0.1 | lib/authpds/institution.rb |