parliament-utils 0.10.0 → 0.10.1
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 +4 -4
- data/.travis.yml +2 -2
- data/lib/parliament/utils/helpers/history_helper.rb +88 -0
- data/lib/parliament/utils/helpers.rb +1 -0
- data/lib/parliament/utils/version.rb +1 -1
- data/parliament-utils.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dd780d300055a0f0b7926bbb9cd7e604c870784
|
4
|
+
data.tar.gz: c406ecc6dffe5d212a973565d49c14db6b5a8580
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76c5da6b9d37ecb2e8d002eb2a535697ac45d9dade4304aee132a6f455e8319cae06f3415cbc9ae4af62ff4583dea6381e3f8a5745a826db450cdc7982b58d8a
|
7
|
+
data.tar.gz: 3c39bf491a242dab05ae476c3a26a4b060044e8ea04a74f3a43a50a65677f29374cde618bcf50560a07f084514918fc6b2804652704b058eb9b532645037ad83
|
data/.travis.yml
CHANGED
@@ -0,0 +1,88 @@
|
|
1
|
+
module Parliament
|
2
|
+
module Utils
|
3
|
+
module Helpers
|
4
|
+
module HistoryHelper
|
5
|
+
# Builds a history object, separating and sorting data into time periods
|
6
|
+
include Parliament::NTriple::Utils
|
7
|
+
|
8
|
+
attr_writer :year_separator
|
9
|
+
|
10
|
+
# Returns year_separator variable (getter method)
|
11
|
+
#
|
12
|
+
# @return [Integer] Number of years used to divide up the timeline into time periods
|
13
|
+
def self.year_separator
|
14
|
+
@year_separator ||= 10
|
15
|
+
end
|
16
|
+
|
17
|
+
# Creates/sets an empty history object
|
18
|
+
#
|
19
|
+
# @return [Hash] Object with properties of start, current and years
|
20
|
+
def self.history
|
21
|
+
@history ||= {
|
22
|
+
start: nil,
|
23
|
+
current: [],
|
24
|
+
# Keys are the time periods
|
25
|
+
# Value is array of Grom::Nodes that have occured during this time period
|
26
|
+
years: {}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
# Resets history
|
31
|
+
#
|
32
|
+
# @return [nil] Resets history to nil
|
33
|
+
def self.reset
|
34
|
+
@history = nil
|
35
|
+
end
|
36
|
+
|
37
|
+
# Adds data to history object, separating current Grom::Nodes from historic Grom::Nodes
|
38
|
+
# and setting start date of earliest Grom::Node
|
39
|
+
#
|
40
|
+
# @param data [Array] Array of Grom::Nodes
|
41
|
+
# @return [Hash] History object with Grom::Nodes divided into historic and current
|
42
|
+
def self.add(data)
|
43
|
+
return if data.nil? || data.empty?
|
44
|
+
# Set history if it has not already been set
|
45
|
+
history
|
46
|
+
data.each do |entry|
|
47
|
+
# Current
|
48
|
+
@history[:current] << entry if entry.try(:end_date).nil?
|
49
|
+
|
50
|
+
# Exit if there is no end date or if the end date is not a date
|
51
|
+
next if entry.try(:end_date).try(:year).try(:to_f).nil?
|
52
|
+
|
53
|
+
# e.g. If current year is 2017, end date is 2008 and year_separator is 10...
|
54
|
+
# year = ((2017-2008)/10).ceil) * 10 = 0
|
55
|
+
# But as it happened within the last 10 years, we want it to be placed in the 10 year time period, not 0
|
56
|
+
year = ((Time.now.year.to_f - entry.end_date.year.to_f) / year_separator).ceil * year_separator
|
57
|
+
year = year_separator if year == 0
|
58
|
+
|
59
|
+
@history[:years][year] = [] unless @history[:years][year]
|
60
|
+
@history[:years][year] << entry
|
61
|
+
|
62
|
+
if entry.respond_to?(:start_date)
|
63
|
+
@history[:start] = entry.start_date if @history[:start].nil? || @history[:start] > entry.start_date
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Sort current Grom::Nodes by start date
|
68
|
+
@history[:current].sort_by!(&:start_date).reverse!
|
69
|
+
sort_history
|
70
|
+
end
|
71
|
+
|
72
|
+
# Sorts Grom::Nodes first by end date, then by start date (if same end date)
|
73
|
+
#
|
74
|
+
# @return [Hash] History object with divided and sorted Grom::Nodes
|
75
|
+
def self.sort_history
|
76
|
+
@history[:years].keys.each do |year|
|
77
|
+
@history[:years][year] = Parliament::NTriple::Utils.multi_direction_sort(
|
78
|
+
{
|
79
|
+
list: @history[:years][year],
|
80
|
+
parameters: { end_date: :desc, start_date: :desc }
|
81
|
+
}
|
82
|
+
)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -10,6 +10,7 @@ require_relative './helpers/v_card_helper'
|
|
10
10
|
require_relative './helpers/grouping_helper'
|
11
11
|
require_relative './helpers/role_grouping_helper'
|
12
12
|
require_relative './helpers/business_item_grouping_helper'
|
13
|
+
require_relative './helpers/history_helper'
|
13
14
|
|
14
15
|
require 'parliament/grom/decorator'
|
15
16
|
|
data/parliament-utils.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parliament-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rebecca Appleyard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parliament-ruby
|
@@ -290,6 +290,20 @@ dependencies:
|
|
290
290
|
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '2.3'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: timecop
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
293
307
|
description: Parliament Utils gem.
|
294
308
|
email:
|
295
309
|
- rklappleyard@gmail.com
|
@@ -336,6 +350,7 @@ files:
|
|
336
350
|
- lib/parliament/utils/helpers/filter_helper.rb
|
337
351
|
- lib/parliament/utils/helpers/flag_helper.rb
|
338
352
|
- lib/parliament/utils/helpers/grouping_helper.rb
|
353
|
+
- lib/parliament/utils/helpers/history_helper.rb
|
339
354
|
- lib/parliament/utils/helpers/houses_helper.rb
|
340
355
|
- lib/parliament/utils/helpers/markdown_helper.rb
|
341
356
|
- lib/parliament/utils/helpers/parliament_helper.rb
|