Class: Rpx::Resident
- Inherits:
-
Hashie::Trash
- Object
- Hashie::Trash
- Rpx::Resident
- Includes:
- Hashie::Extensions::Coercion, Hashie::Extensions::IgnoreUndeclared
- Defined in:
- lib/rpx/resident.rb
Direct Known Subclasses
Class Method Summary collapse
- .current_residents(options, client = Client.new(options)) ⇒ Object
- .where(options, client = Client.new(options)) ⇒ Object
Instance Method Summary collapse
- #current_lease ⇒ Object
- #current_resident? ⇒ Boolean
- #fullname ⇒ Object
- #leases ⇒ Object
- #minor? ⇒ Boolean
- #moved_out? ⇒ Boolean
- #residenttype ⇒ Object
- #status ⇒ Object
Class Method Details
.current_residents(options, client = Client.new(options)) ⇒ Object
76 77 78 |
# File 'lib/rpx/resident.rb', line 76 def self.current_residents(, client=Client.new()) self.where(, client).select{|resident| resident.current_resident? } end |
.where(options, client = Client.new(options)) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rpx/resident.rb', line 43 def self.where(, client=Client.new()) resident_hashs = client.api_call :getresidentlist, do |xml| xml.tem :residentsearch do |xml| xml.tem :extensionData client.add_attributes_if_present(xml, , Resident.properties.to_a) end end site_properties = {siteid: .fetch(:siteid), pmcid: .fetch(:pmcid)} [resident_hashs].flatten.map{ |resident_hash| Resident.new(resident_hash.merge(site_properties)) } end |
Instance Method Details
#current_lease ⇒ Object
59 60 61 |
# File 'lib/rpx/resident.rb', line 59 def current_lease @current_lease ||= leases.sort_by{ |lease| lease.dateend }.last end |
#current_resident? ⇒ Boolean
80 81 82 |
# File 'lib/rpx/resident.rb', line 80 def current_resident? self.leasestatus == "Current" end |
#fullname ⇒ Object
84 85 86 |
# File 'lib/rpx/resident.rb', line 84 def fullname "#{firstname} #{lastname}".strip #TODO: ask them to add middleman saluration and generation in the api end |
#leases ⇒ Object
55 56 57 |
# File 'lib/rpx/resident.rb', line 55 def leases @leases ||= ResidentWithLease.find({resident_id: self.resident_id, siteid: siteid, pmcid: pmcid}).leases end |
#minor? ⇒ Boolean
73 74 75 |
# File 'lib/rpx/resident.rb', line 73 def minor? current_lease.residentrelationship.downcase[/minor/] end |
#moved_out? ⇒ Boolean
67 68 69 70 71 |
# File 'lib/rpx/resident.rb', line 67 def moved_out? return false if current_resident? current_lease.moved_out? end |
#residenttype ⇒ Object
39 40 41 |
# File 'lib/rpx/resident.rb', line 39 def residenttype self[:residenttype] == 'H' ? 'Head of Household' : 'Other' end |
#status ⇒ Object
63 64 65 |
# File 'lib/rpx/resident.rb', line 63 def status current_lease.leasestatus end |