Module: A0::TZMigration
- Defined in:
- lib/a0/tzmigration/config.rb,
lib/a0/tzmigration/version.rb,
lib/a0/tzmigration/tzversion.rb,
lib/a0/tzmigration/range_list.rb,
lib/a0/tzmigration/data_generator.rb,
lib/a0/tzmigration/data_generator/git.rb,
lib/a0/tzmigration/data_generator/save.rb,
lib/a0/tzmigration/data_generator/process.rb
Defined Under Namespace
Classes: DataGenerator, DefaultConfig, TZVersion
Constant Summary
collapse
- VERSION =
'0.1.1'
Class Method Summary
collapse
Class Method Details
.compact_range_list!(range_list) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/a0/tzmigration/range_list.rb', line 5
def self.compact_range_list!(range_list) index = 0
while index < range_list.count
curr_range = range_list[index]
next_range = range_list[index + 1]
if next_range && curr_range[:fin] == next_range[:ini] && curr_range[:off] == next_range[:off]
curr_range[:fin] = next_range[:fin]
range_list.delete_at(index + 1)
else
index += 1
end
end
range_list
end
|
.config ⇒ Object
18
19
20
|
# File 'lib/a0/tzmigration/config.rb', line 18
def self.config
@config || configure
end
|
12
13
14
15
16
|
# File 'lib/a0/tzmigration/config.rb', line 12
def self.configure
@config = DefaultConfig.new
yield(@config) if block_given?
@config
end
|
.next_index(index, range_list, timestamp) ⇒ Object
23
24
25
26
27
|
# File 'lib/a0/tzmigration/range_list.rb', line 23
def self.next_index(index, range_list, timestamp)
index += 1 while range_list[index + 1] && range_list[index][:ini] < timestamp && range_list[index][:fin] <= timestamp
index
end
|
.split_range_list!(range_list, timestamps) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/a0/tzmigration/range_list.rb', line 42
def self.split_range_list!(range_list, timestamps) index = next_index(0, range_list, timestamps.first)
timestamps.each_with_index do |timestamp, timestamp_index|
range = range_list[index]
if timestamp > range[:ini] && timestamp < range[:fin] && index < range_list.count
range_list.insert index + 1, range.merge(ini: timestamp)
range_list[index][:fin] = timestamp
end
next_timestamp = timestamps[timestamp_index + 1]
index = next_index(index, range_list, next_timestamp) if next_timestamp
end
range_list
end
|
.timestamp_range_list!(range_list) ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/a0/tzmigration/range_list.rb', line 33
def self.timestamp_range_list!(range_list)
range_list.each do |range|
range[:utc_ini] = timestamp_to_utc(range[:ini])
range[:utc_fin] = timestamp_to_utc(range[:fin])
end
range_list
end
|
.timestamp_to_utc(timestamp) ⇒ Object
29
30
31
|
# File 'lib/a0/tzmigration/range_list.rb', line 29
def self.timestamp_to_utc(timestamp)
Time.at(timestamp).utc if timestamp && timestamp != Float::INFINITY && timestamp != -Float::INFINITY
end
|