Module: Parliament::Grom::Decorator::Person
- Defined in:
- lib/parliament/grom/decorator/person.rb
Overview
Decorator namespace for Grom::Node instances with type: id.ukpds.org/schema/Person. rubocop:disable ModuleLength
Instance Method Summary collapse
-
#constituencies ⇒ Array
Alias houseSeatHasConstituencyGroup with fallback.
-
#contact_points ⇒ Array
Alias personHasContactPoint with fallback.
-
#date_of_birth ⇒ DateTime?
Alias personDateOfBirth with fallback.
-
#display_name ⇒ String
Alias F31CBD81AD8343898B49DC65743F0BDF with fallback.
-
#family_name ⇒ String
Alias personFamilyName with fallback.
-
#full_name ⇒ String
Builds a full name using personGivenName and personFamilyName.
-
#full_title ⇒ String
Alias D79B0BAC513C4A9A87C9D5AFF1FC632F with fallback.
-
#gender ⇒ Array
Alias genderIdentityHasGender with fallback.
-
#gender_identities ⇒ Array
Alias personHasGenderIdentity with fallback.
-
#given_name ⇒ String
Alias personGivenName with fallback.
-
#house_incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
-
#houses ⇒ Array
Alias houseSeatHasHouse with fallback.
-
#incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
-
#other_name ⇒ String
Alias personOtherNames with fallback.
-
#parties ⇒ Array
Alias partyMembershipHasParty with fallback.
-
#party_memberships ⇒ Array
Alias partyMemberHasPartyMembership with fallback.
-
#seat_incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
-
#seats ⇒ Array
Alias seatIncumbencyHasHouseSeat with fallback.
-
#sort_name ⇒ String
Alias A5EE13ABE03C4D3A8F1A274F57097B6C with fallback.
-
#statuses ⇒ Hash
Checks the statuses of the Grom::Node.
Instance Method Details
#constituencies ⇒ Array
Alias houseSeatHasConstituencyGroup with fallback.
86 87 88 |
# File 'lib/parliament/grom/decorator/person.rb', line 86 def constituencies @constituencies ||= seats.map(&:constituency).flatten.uniq.compact end |
#contact_points ⇒ Array
Alias personHasContactPoint with fallback.
107 108 109 |
# File 'lib/parliament/grom/decorator/person.rb', line 107 def contact_points respond_to?(:personHasContactPoint) ? personHasContactPoint : [] end |
#date_of_birth ⇒ DateTime?
Alias personDateOfBirth with fallback.
31 32 33 |
# File 'lib/parliament/grom/decorator/person.rb', line 31 def date_of_birth @date_of_birth ||= respond_to?(:personDateOfBirth) ? DateTime.parse(personDateOfBirth) : nil end |
#display_name ⇒ String
Alias F31CBD81AD8343898B49DC65743F0BDF with fallback.
148 149 150 |
# File 'lib/parliament/grom/decorator/person.rb', line 148 def display_name respond_to?(:F31CBD81AD8343898B49DC65743F0BDF) ? self.F31CBD81AD8343898B49DC65743F0BDF : full_name end |
#family_name ⇒ String
Alias personFamilyName with fallback.
17 18 19 |
# File 'lib/parliament/grom/decorator/person.rb', line 17 def family_name respond_to?(:personFamilyName) ? personFamilyName : '' end |
#full_name ⇒ String
Builds a full name using personGivenName and personFamilyName.
38 39 40 41 42 43 44 45 46 |
# File 'lib/parliament/grom/decorator/person.rb', line 38 def full_name return @full_name unless @full_name.nil? full_name = [] full_name << personGivenName if respond_to?(:personGivenName) full_name << personFamilyName if respond_to?(:personFamilyName) @full_name = full_name.join(' ') end |
#full_title ⇒ String
Alias D79B0BAC513C4A9A87C9D5AFF1FC632F with fallback.
141 142 143 |
# File 'lib/parliament/grom/decorator/person.rb', line 141 def full_title respond_to?(:D79B0BAC513C4A9A87C9D5AFF1FC632F) ? self.D79B0BAC513C4A9A87C9D5AFF1FC632F : '' end |
#gender ⇒ Array
Alias genderIdentityHasGender with fallback.
121 122 123 |
# File 'lib/parliament/grom/decorator/person.rb', line 121 def gender gender_identities.empty? ? nil : gender_identities.first.gender end |
#gender_identities ⇒ Array
Alias personHasGenderIdentity with fallback.
114 115 116 |
# File 'lib/parliament/grom/decorator/person.rb', line 114 def gender_identities respond_to?(:personHasGenderIdentity) ? personHasGenderIdentity : [] end |
#given_name ⇒ String
Alias personGivenName with fallback.
10 11 12 |
# File 'lib/parliament/grom/decorator/person.rb', line 10 def given_name respond_to?(:personGivenName) ? personGivenName : '' end |
#house_incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
65 66 67 |
# File 'lib/parliament/grom/decorator/person.rb', line 65 def house_incumbencies @house_incumbencies ||= incumbencies.select { |inc| inc.type == 'http://id.ukpds.org/schema/HouseIncumbency' } end |
#houses ⇒ Array
Alias houseSeatHasHouse with fallback.
79 80 81 |
# File 'lib/parliament/grom/decorator/person.rb', line 79 def houses @houses ||= [seats.map(&:house), house_incumbencies.map(&:house)].flatten.uniq.compact end |
#incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
51 52 53 |
# File 'lib/parliament/grom/decorator/person.rb', line 51 def incumbencies respond_to?(:memberHasIncumbency) ? memberHasIncumbency : [] end |
#other_name ⇒ String
Alias personOtherNames with fallback.
24 25 26 |
# File 'lib/parliament/grom/decorator/person.rb', line 24 def other_name respond_to?(:personOtherNames) ? personOtherNames : '' end |
#parties ⇒ Array
Alias partyMembershipHasParty with fallback.
100 101 102 |
# File 'lib/parliament/grom/decorator/person.rb', line 100 def parties @parties ||= party_memberships.map(&:party).flatten.uniq.compact end |
#party_memberships ⇒ Array
Alias partyMemberHasPartyMembership with fallback.
93 94 95 |
# File 'lib/parliament/grom/decorator/person.rb', line 93 def party_memberships respond_to?(:partyMemberHasPartyMembership) ? partyMemberHasPartyMembership : [] end |
#seat_incumbencies ⇒ Array
Alias memberHasIncumbency with fallback.
58 59 60 |
# File 'lib/parliament/grom/decorator/person.rb', line 58 def seat_incumbencies @seat_incumbencies ||= incumbencies.select { |inc| inc.type == 'http://id.ukpds.org/schema/SeatIncumbency' } end |
#seats ⇒ Array
Alias seatIncumbencyHasHouseSeat with fallback.
72 73 74 |
# File 'lib/parliament/grom/decorator/person.rb', line 72 def seats @seats ||= seat_incumbencies.map(&:seat).flatten.uniq.compact end |
#sort_name ⇒ String
Alias A5EE13ABE03C4D3A8F1A274F57097B6C with fallback.
155 156 157 |
# File 'lib/parliament/grom/decorator/person.rb', line 155 def sort_name respond_to?(:A5EE13ABE03C4D3A8F1A274F57097B6C) ? self.A5EE13ABE03C4D3A8F1A274F57097B6C : '' end |
#statuses ⇒ Hash
Checks the statuses of the Grom::Node.
128 129 130 131 132 133 134 135 136 |
# File 'lib/parliament/grom/decorator/person.rb', line 128 def statuses return @statuses unless @statuses.nil? statuses = {} statuses[:house_membership_status] = house_membership_status statuses[:general_membership_status] = general_membership_status @statuses = statuses end |