hdo-storting-importer 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/convert.feature +1 -1
- data/lib/hdo/storting_importer/party.rb +4 -23
- data/lib/hdo/storting_importer/schema/party.json +0 -20
- data/lib/hdo/storting_importer/version.rb +1 -1
- data/lib/hdo/storting_importer.rb +0 -2
- data/spec/hdo/storting_importer/caching_data_source_spec.rb +1 -1
- data/spec/hdo/storting_importer/party_spec.rb +1 -8
- metadata +4 -7
- data/lib/hdo/storting_importer/governing_period.rb +0 -54
- data/lib/hdo/storting_importer/schema/governing_period.json +0 -24
- data/spec/hdo/storting_importer/governing_period_spec.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26642ade6747a6d4a227ea61654c0443f16b04c7
|
4
|
+
data.tar.gz: a6ea9cb8e7948b2cb632a735c43adecfcfd07b0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcc036048f7b3da58c364a41e34846cf3d76000242e163afb001e725040c4077774785fe268bc4c8eb755bd6414435ef8e47b5ad1db1dff7e28aa44c8f6911cc
|
7
|
+
data.tar.gz: 3e38dce611e3ffda4cfde125c968fbbbd21b459880ac5b556965e4318e8414b4e2163c744da31b1e4a1007f6823016d2969f424bb6eaf253e095ff41aec10061
|
data/features/convert.feature
CHANGED
@@ -5,14 +5,12 @@ module Hdo
|
|
5
5
|
include IvarEquality
|
6
6
|
|
7
7
|
attr_reader :external_id, :name
|
8
|
-
attr_accessor :governing_periods
|
9
8
|
alias_method :short_inspect, :inspect
|
10
9
|
|
11
10
|
schema_path StortingImporter.lib.join("hdo/storting_importer/schema/party.json").to_s
|
12
11
|
|
13
12
|
def self.example(overrides = nil)
|
14
13
|
obj = new("A", "Arbeiderpartiet")
|
15
|
-
obj.governing_periods = [GoverningPeriod.new('2005-10-17', '2013-10-14')]
|
16
14
|
|
17
15
|
if overrides
|
18
16
|
obj = from_hash(obj.to_hash.merge(overrides))
|
@@ -22,31 +20,20 @@ module Hdo
|
|
22
20
|
end
|
23
21
|
|
24
22
|
def self.from_storting_doc(doc)
|
25
|
-
|
23
|
+
doc.css("partier_liste parti").map do |node|
|
26
24
|
new node.css("id").first.text,
|
27
25
|
node.css("navn").first.text
|
28
26
|
end
|
29
|
-
|
30
|
-
GoverningPeriod.add_to parties
|
31
|
-
|
32
|
-
parties
|
33
27
|
end
|
34
28
|
|
35
29
|
def self.from_hash(hash)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
obj.governing_periods = Array(hash['governing_periods']).map do |gp|
|
40
|
-
GoverningPeriod.from_hash gp
|
41
|
-
end
|
42
|
-
|
43
|
-
obj
|
30
|
+
new hash['external_id'],
|
31
|
+
hash['name']
|
44
32
|
end
|
45
33
|
|
46
34
|
def initialize(external_id, name)
|
47
35
|
@external_id = external_id
|
48
36
|
@name = name
|
49
|
-
@governing_periods = nil
|
50
37
|
end
|
51
38
|
|
52
39
|
def external_id
|
@@ -54,17 +41,11 @@ module Hdo
|
|
54
41
|
end
|
55
42
|
|
56
43
|
def to_hash
|
57
|
-
|
44
|
+
{
|
58
45
|
'kind' => self.class.kind,
|
59
46
|
'external_id' => @external_id,
|
60
47
|
'name' => @name,
|
61
48
|
}
|
62
|
-
|
63
|
-
if @governing_periods
|
64
|
-
h['governing_periods'] = @governing_periods.map { |e| e.to_hash }
|
65
|
-
end
|
66
|
-
|
67
|
-
h
|
68
49
|
end
|
69
50
|
|
70
51
|
end
|
@@ -18,26 +18,6 @@
|
|
18
18
|
"description": "The name of the party",
|
19
19
|
"type": "string",
|
20
20
|
"required": true
|
21
|
-
},
|
22
|
-
"governing_periods": {
|
23
|
-
"type": "array",
|
24
|
-
"description": "Periods where this party was in the elected government.",
|
25
|
-
"items": {
|
26
|
-
"type": "object",
|
27
|
-
"properties": {
|
28
|
-
"start_date": {
|
29
|
-
"type": "string",
|
30
|
-
"format": "date",
|
31
|
-
"description": "When the governing period started.",
|
32
|
-
"required": true
|
33
|
-
},
|
34
|
-
"end_date": {
|
35
|
-
"type": "string",
|
36
|
-
"format": "date",
|
37
|
-
"description": "When the governing period stopped."
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
21
|
}
|
42
22
|
}
|
43
23
|
}
|
@@ -30,7 +30,6 @@ module Hdo
|
|
30
30
|
Committee,
|
31
31
|
CommitteeMembership,
|
32
32
|
District,
|
33
|
-
GoverningPeriod,
|
34
33
|
ParliamentIssue,
|
35
34
|
ParliamentSession,
|
36
35
|
ParliamentPeriod,
|
@@ -138,6 +137,5 @@ require 'hdo/storting_importer/promise'
|
|
138
137
|
require 'hdo/storting_importer/representative'
|
139
138
|
require 'hdo/storting_importer/proposition'
|
140
139
|
require 'hdo/storting_importer/vote'
|
141
|
-
require 'hdo/storting_importer/governing_period'
|
142
140
|
|
143
141
|
require 'hdo/storting_importer/cli'
|
@@ -40,14 +40,7 @@ module Hdo
|
|
40
40
|
{
|
41
41
|
"kind": "hdo#party",
|
42
42
|
"external_id": "A",
|
43
|
-
"name": "Arbeiderpartiet"
|
44
|
-
"governing_periods": [
|
45
|
-
{
|
46
|
-
"kind": "hdo#governing_period",
|
47
|
-
"start_date": "2005-10-17",
|
48
|
-
"end_date": "2013-10-14"
|
49
|
-
}
|
50
|
-
]
|
43
|
+
"name": "Arbeiderpartiet"
|
51
44
|
}
|
52
45
|
JSON
|
53
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hdo-storting-importer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jari Bakken
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -278,7 +278,6 @@ files:
|
|
278
278
|
- lib/hdo/storting_importer/data_source.rb
|
279
279
|
- lib/hdo/storting_importer/disk_data_source.rb
|
280
280
|
- lib/hdo/storting_importer/district.rb
|
281
|
-
- lib/hdo/storting_importer/governing_period.rb
|
282
281
|
- lib/hdo/storting_importer/has_json_schema.rb
|
283
282
|
- lib/hdo/storting_importer/in_memory_cache.rb
|
284
283
|
- lib/hdo/storting_importer/inspectable.rb
|
@@ -297,7 +296,6 @@ files:
|
|
297
296
|
- lib/hdo/storting_importer/schema/committee.json
|
298
297
|
- lib/hdo/storting_importer/schema/committee_membership.json
|
299
298
|
- lib/hdo/storting_importer/schema/district.json
|
300
|
-
- lib/hdo/storting_importer/schema/governing_period.json
|
301
299
|
- lib/hdo/storting_importer/schema/parliament_issue.json
|
302
300
|
- lib/hdo/storting_importer/schema/parliament_period.json
|
303
301
|
- lib/hdo/storting_importer/schema/parliament_session.json
|
@@ -315,7 +313,6 @@ files:
|
|
315
313
|
- spec/hdo/storting_importer/committee_membership_spec.rb
|
316
314
|
- spec/hdo/storting_importer/committee_spec.rb
|
317
315
|
- spec/hdo/storting_importer/district_spec.rb
|
318
|
-
- spec/hdo/storting_importer/governing_period_spec.rb
|
319
316
|
- spec/hdo/storting_importer/parliament_issue_spec.rb
|
320
317
|
- spec/hdo/storting_importer/parliament_period_spec.rb
|
321
318
|
- spec/hdo/storting_importer/parliament_session_spec.rb
|
@@ -347,7 +344,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
344
|
version: '0'
|
348
345
|
requirements: []
|
349
346
|
rubyforge_project:
|
350
|
-
rubygems_version: 2.
|
347
|
+
rubygems_version: 2.1.9
|
351
348
|
signing_key:
|
352
349
|
specification_version: 4
|
353
350
|
summary: Gem to process data from data.stortinget.no
|
@@ -359,7 +356,6 @@ test_files:
|
|
359
356
|
- spec/hdo/storting_importer/committee_membership_spec.rb
|
360
357
|
- spec/hdo/storting_importer/committee_spec.rb
|
361
358
|
- spec/hdo/storting_importer/district_spec.rb
|
362
|
-
- spec/hdo/storting_importer/governing_period_spec.rb
|
363
359
|
- spec/hdo/storting_importer/parliament_issue_spec.rb
|
364
360
|
- spec/hdo/storting_importer/parliament_period_spec.rb
|
365
361
|
- spec/hdo/storting_importer/parliament_session_spec.rb
|
@@ -372,3 +368,4 @@ test_files:
|
|
372
368
|
- spec/spec_helper.rb
|
373
369
|
- spec/support/shared_examples_for_json_schema.rb
|
374
370
|
- spec/support/shared_examples_for_short_inspect.rb
|
371
|
+
has_rdoc:
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Hdo
|
2
|
-
module StortingImporter
|
3
|
-
class GoverningPeriod
|
4
|
-
include IvarEquality
|
5
|
-
include HasJsonSchema
|
6
|
-
|
7
|
-
attr_reader :start_date, :end_date
|
8
|
-
|
9
|
-
schema_path StortingImporter.lib.join("hdo/storting_importer/schema/governing_period.json").to_s
|
10
|
-
|
11
|
-
def self.add_to(parties)
|
12
|
-
Array(parties).each do |party|
|
13
|
-
party.governing_periods = all[party.external_id]
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# Who and who isn't in government is not available in the data
|
19
|
-
# from Stortinget, so we hardcode it here.
|
20
|
-
#
|
21
|
-
|
22
|
-
def self.all
|
23
|
-
@periods ||= {
|
24
|
-
"A" => [ GoverningPeriod.new('2005-10-17') ],
|
25
|
-
"SV" => [ GoverningPeriod.new('2005-10-17') ],
|
26
|
-
"Sp" => [ GoverningPeriod.new('2005-10-17') ]
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.example
|
31
|
-
all['A'].first
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.from_hash(hash)
|
35
|
-
new hash['start_date'], hash['end_date']
|
36
|
-
end
|
37
|
-
|
38
|
-
def initialize(start_date, end_date = nil)
|
39
|
-
@start_date = Date.strptime(start_date) if start_date
|
40
|
-
@end_date = Date.strptime(end_date) if end_date
|
41
|
-
end
|
42
|
-
|
43
|
-
def to_hash
|
44
|
-
{
|
45
|
-
'kind' => self.class.kind,
|
46
|
-
'start_date' => @start_date && @start_date.iso8601,
|
47
|
-
'end_date' => @end_date && @end_date.iso8601
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"id": "hdo#governing_period",
|
3
|
-
"description": "a period where a party is in government",
|
4
|
-
"type":"object",
|
5
|
-
"properties": {
|
6
|
-
"kind": {
|
7
|
-
"type": "string",
|
8
|
-
"description": "This is always 'hdo#governing_period'",
|
9
|
-
"default": "hdo#governing_period",
|
10
|
-
"required": true
|
11
|
-
},
|
12
|
-
"start_date": {
|
13
|
-
"type": "string",
|
14
|
-
"description": "The date the period started.",
|
15
|
-
"format": "date",
|
16
|
-
"required": true
|
17
|
-
},
|
18
|
-
"end_date": {
|
19
|
-
"type": "string",
|
20
|
-
"description": "The date the period ended. Can be null if the period is current.",
|
21
|
-
"format": "date",
|
22
|
-
"required": false
|
23
|
-
}
|
24
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
module Hdo
|
5
|
-
module StortingImporter
|
6
|
-
describe GoverningPeriod do
|
7
|
-
|
8
|
-
it_behaves_like 'type with JSON schema'
|
9
|
-
|
10
|
-
it 'can serialize as JSON' do
|
11
|
-
expected = <<-JSON
|
12
|
-
{
|
13
|
-
"kind": "hdo#governing_period",
|
14
|
-
"start_date": "2005-10-01",
|
15
|
-
"end_date": "2013-09-30"
|
16
|
-
}
|
17
|
-
JSON
|
18
|
-
|
19
|
-
session = GoverningPeriod.new('2005-10-01', '2013-09-30')
|
20
|
-
session.to_json.should be_json(expected)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|