parliament-grom-decorators 0.16.1 → 0.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ea8192e3154588594800bbaeef46e1a1ef244904
|
|
4
|
+
data.tar.gz: 32dc25c2e07bea9ce588142d263cdbabd714f4c7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef2c332128f1170b698fbebad46a2a8382b98b27fa32614e034d9e6667e278b97666ccbee2f389dcc4804f5e1079779b85d4851cdb5b4345c32afbc63d4e082c
|
|
7
|
+
data.tar.gz: 58b58e5522920c6779ff0efd89916ee4d41ec9a13145f31cfd099648ba2ac0904407a17d1eb5f5f80df44c9be9fa00ec919b6d5b3175dc338d3b1d696565eeb4
|
|
@@ -26,6 +26,7 @@ require 'parliament/grom/decorator/web_article'
|
|
|
26
26
|
require 'parliament/grom/decorator/audience'
|
|
27
27
|
require 'parliament/grom/decorator/article_type'
|
|
28
28
|
require 'parliament/grom/decorator/collection'
|
|
29
|
+
require 'parliament/grom/decorator/concept'
|
|
29
30
|
|
|
30
31
|
# Namespace for classes and modules that handle connections to, and processing of data from the parliamentary API.
|
|
31
32
|
# @since 0.1.0
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Parliament
|
|
2
|
+
module Grom
|
|
3
|
+
module Decorator
|
|
4
|
+
# Decorator namespace for Grom::Node instances with type: https://id.parliament.uk/schema/Concept
|
|
5
|
+
module Concept
|
|
6
|
+
# Alias conceptLabel with fallback.
|
|
7
|
+
#
|
|
8
|
+
# @return [String, String] the IDMS title of the Grom::Node or an empty string.
|
|
9
|
+
def name
|
|
10
|
+
respond_to?(:conceptLabel) ? conceptLabel : ''
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Alias conceptScopeNote with fallback.
|
|
14
|
+
#
|
|
15
|
+
# @return [String, String] the IDMS description of the Grom::Node or an empty string.
|
|
16
|
+
def description
|
|
17
|
+
respond_to?(:conceptScopeNote) ? conceptScopeNote : ''
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Alias conceptDefinition with fallback.
|
|
21
|
+
#
|
|
22
|
+
# @return [String, String] the IDMS description of the Grom::Node or an empty string.
|
|
23
|
+
def definition
|
|
24
|
+
respond_to?(:conceptDefinition) ? conceptDefinition : ''
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Alias conceptHasSubjectTaggedThing with fallback.
|
|
28
|
+
#
|
|
29
|
+
# @return [Array, Array] array of WebArticle Grom::Nodes tagged with that concept or an empty array.
|
|
30
|
+
def tagged_articles
|
|
31
|
+
respond_to?(:conceptHasSubjectTaggedThing) ? conceptHasSubjectTaggedThing : []
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Alias conceptHasBroaderConcept with fallback.
|
|
35
|
+
#
|
|
36
|
+
# @return [Array, Array] array of parent Concept Grom::Nodes or an empty array.
|
|
37
|
+
def parent_concepts
|
|
38
|
+
respond_to?(:conceptHasBroaderConcept) ? conceptHasBroaderConcept : []
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Alias conceptHasNarrowerConcept with fallback.
|
|
42
|
+
#
|
|
43
|
+
# @return [Array, Array] array of child Concept Grom::Nodes or an empty array.
|
|
44
|
+
def child_concepts
|
|
45
|
+
respond_to?(:conceptHasNarrowerConcept) ? conceptHasNarrowerConcept : []
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -58,6 +58,20 @@ module Parliament
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
+
# Alias personPimsId with fallback.
|
|
62
|
+
#
|
|
63
|
+
# @return [Array, Array] the pims_id of the Grom::Node or nil.
|
|
64
|
+
def pims_id
|
|
65
|
+
respond_to?(:personPimsId) ? personPimsId : nil
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Alias personMnisId with fallback.
|
|
69
|
+
#
|
|
70
|
+
# @return [Array, Array] the mnis_id of the Grom::Node or nil.
|
|
71
|
+
def mnis_id
|
|
72
|
+
respond_to?(:personMnisId) ? personMnisId : nil
|
|
73
|
+
end
|
|
74
|
+
|
|
61
75
|
# Alias memberHasParliamentaryIncumbency with fallback.
|
|
62
76
|
#
|
|
63
77
|
# @return [Array, Array] all the incumbencies of the Grom::Node or an empty array.
|
|
@@ -72,6 +86,16 @@ module Parliament
|
|
|
72
86
|
@seat_incumbencies ||= incumbencies.select { |inc| inc.type == 'https://id.parliament.uk/schema/SeatIncumbency' }
|
|
73
87
|
end
|
|
74
88
|
|
|
89
|
+
# @return [Grom::Node] the seat incumbency as a Grom::Node or nil
|
|
90
|
+
def current_seat_incumbency
|
|
91
|
+
@current_seat_incumbency ||= seat_incumbencies.select(&:current?)&.first
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# @return [Grom::Node] the most recent seat incumbency as a Grom::Node or nil
|
|
95
|
+
def most_recent_seat_incumbency
|
|
96
|
+
@most_recent_seat_incumbency ||= seat_incumbencies.sort_by!(&:start_date).reverse.first
|
|
97
|
+
end
|
|
98
|
+
|
|
75
99
|
# Alias seatIncumbencyHasHouseSeat with fallback.
|
|
76
100
|
#
|
|
77
101
|
# @return [Array, Array] the seats of the Grom::Node or an empty array.
|
|
@@ -183,6 +207,17 @@ module Parliament
|
|
|
183
207
|
former_member_by_house?('House of Lords')
|
|
184
208
|
end
|
|
185
209
|
|
|
210
|
+
# Check whether they are a Member or a Lord from their latest seat incumbency.
|
|
211
|
+
# Current incumbencies are higher priority when determining a person_type, therefore check first for former, then current
|
|
212
|
+
# @return [String] 'member' if they are a member, 'lord' if they are a lord.
|
|
213
|
+
def person_type
|
|
214
|
+
person_type = 'member' if former_mp?
|
|
215
|
+
person_type = 'lord' if former_lord?
|
|
216
|
+
person_type = 'member' if current_mp?
|
|
217
|
+
person_type = 'lord' if current_lord?
|
|
218
|
+
person_type
|
|
219
|
+
end
|
|
220
|
+
|
|
186
221
|
# Alias D79B0BAC513C4A9A87C9D5AFF1FC632F with fallback.
|
|
187
222
|
#
|
|
188
223
|
# @return [String, String] the full title of the Grom::Node or an empty string.
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parliament-grom-decorators
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.16.
|
|
4
|
+
version: 0.16.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rebecca Appleyard
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -175,6 +175,7 @@ files:
|
|
|
175
175
|
- lib/parliament/grom/decorator/article_type.rb
|
|
176
176
|
- lib/parliament/grom/decorator/audience.rb
|
|
177
177
|
- lib/parliament/grom/decorator/collection.rb
|
|
178
|
+
- lib/parliament/grom/decorator/concept.rb
|
|
178
179
|
- lib/parliament/grom/decorator/constituency_area.rb
|
|
179
180
|
- lib/parliament/grom/decorator/constituency_group.rb
|
|
180
181
|
- lib/parliament/grom/decorator/contact_point.rb
|