time_overlap 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3a8031e7707fb88197a85c2c3b9e1997c522333ab68542c34f25215a10a5ccb
4
- data.tar.gz: 84bfea4dd827d62cd2c7f16b79878f7e0625d5262f257dc7ef6f942876ef3afb
3
+ metadata.gz: b9e4e213781a7696f079a6c77f32c0eea931b81b151ac98853b5473999360b13
4
+ data.tar.gz: 3d0e1f250c5cb79c144bab9c603c21c312bb0a2fd20cb4e3134cd6d6f9ab76d9
5
5
  SHA512:
6
- metadata.gz: 61b8dc9ef09fc1961bbdb7a48d595e6fa033d1594e6f239cf96c2f382961e4567064d1957c8cad6bf11ff12b7fc61b3d02d1e0b8a08cb8845f35734ec3e6a534
7
- data.tar.gz: 92980ca74a0b13c6332909cf99c6f9e97baed391869fb704144afaba45370bb401275a54e3bf6e21564275b07c0eb4c2030253b1668ee4428823f879aa1d1408
6
+ metadata.gz: 2f3a46e672c5a65556095d5d8226b70a866d2e73f856080d16c471b1fc6ec7bc92e3aafe0239db394187c738467a6ac1c9e3b25a3dbf53d67657d52ab39b33e2
7
+ data.tar.gz: 793c2a31a29b1be9a16710587c1c4195566febf0b63152795f28ce97a9b24a59e367608c6a3116881a0175e44deff3b314c097da660332daeb2753e8831d7448
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- time_overlap (0.2.0)
4
+ time_overlap (0.2.1)
5
5
  activesupport
6
6
  colorize
7
7
  terminal-table
@@ -10,19 +10,19 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (6.0.2.2)
13
+ activesupport (6.0.3.1)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
15
  i18n (>= 0.7, < 2)
16
16
  minitest (~> 5.1)
17
17
  tzinfo (~> 1.1)
18
- zeitwerk (~> 2.2)
18
+ zeitwerk (~> 2.2, >= 2.2.2)
19
19
  byebug (11.1.1)
20
20
  colorize (0.8.1)
21
21
  concurrent-ruby (1.1.6)
22
22
  diff-lcs (1.3)
23
23
  i18n (1.8.2)
24
24
  concurrent-ruby (~> 1.0)
25
- minitest (5.14.0)
25
+ minitest (5.14.1)
26
26
  rake (13.0.1)
27
27
  rspec (3.8.0)
28
28
  rspec-core (~> 3.8.0)
@@ -59,4 +59,4 @@ DEPENDENCIES
59
59
  timecop
60
60
 
61
61
  BUNDLED WITH
62
- 2.0.2
62
+ 2.1.4
@@ -26,6 +26,38 @@ module TimeOverlap
26
26
  end
27
27
 
28
28
  def execute
29
+ @data = build_data
30
+
31
+ if @data[:overlap_1][:start] == @data[:overlap_2][:start] &&
32
+ @data[:overlap_1][:end] == @data[:overlap_2][:end]
33
+ @data.delete(:overlap_2)
34
+ end
35
+
36
+ throw_errors!
37
+
38
+ unless @expert
39
+ @data.delete(:overlap_1)
40
+ @data.delete(:overlap_2)
41
+ end
42
+
43
+ present_result
44
+ end
45
+
46
+ private
47
+
48
+ attr_reader(
49
+ :start_time,
50
+ :end_time,
51
+ :from,
52
+ :to,
53
+ :time_zone,
54
+ :my_time_zone,
55
+ :min_overlap,
56
+ :data,
57
+ :duration
58
+ )
59
+
60
+ def build_data
29
61
  offset = duration - min_overlap
30
62
 
31
63
  start_time_in_my_time_zone = start_time.in_time_zone(my_time_zone)
@@ -37,7 +69,7 @@ module TimeOverlap
37
69
  overlap_2_start_time = (end_time - min_overlap * 60 * 60).in_time_zone(my_time_zone)
38
70
  overlap_2_end_time = (overlap_2_start_time + duration * 60 * 60).in_time_zone(my_time_zone)
39
71
 
40
- @data = {
72
+ {
41
73
  original: {
42
74
  start: start_time,
43
75
  end: end_time
@@ -59,37 +91,8 @@ module TimeOverlap
59
91
  time_zone: time_zone,
60
92
  my_time_zone: my_time_zone
61
93
  }
62
-
63
- if overlap_1_start_time == overlap_2_start_time &&
64
- overlap_1_end_time == overlap_2_end_time
65
- @data.delete(:overlap_2)
66
- end
67
-
68
-
69
- throw_errors!
70
-
71
- unless @expert
72
- @data.delete(:overlap_1)
73
- @data.delete(:overlap_2)
74
- end
75
-
76
- present_result
77
94
  end
78
95
 
79
- private
80
-
81
- attr_reader(
82
- :start_time,
83
- :end_time,
84
- :from,
85
- :to,
86
- :time_zone,
87
- :my_time_zone,
88
- :min_overlap,
89
- :data,
90
- :duration
91
- )
92
-
93
96
  def present_result
94
97
  presenter_instance.generate_output
95
98
  end
@@ -103,6 +106,10 @@ module TimeOverlap
103
106
 
104
107
  if offset.nil?
105
108
  zone = ActiveSupport::TimeZone.new(time_zone)
109
+ if zone.nil?
110
+ raise "Invalid Timezone: #{time_zone}"
111
+ end
112
+
106
113
  offset = zone.now.utc_offset
107
114
  end
108
115
 
@@ -1,3 +1,3 @@
1
1
  module TimeOverlap
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_overlap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafał Trojanowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-22 00:00:00.000000000 Z
11
+ date: 2020-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport