time_overlap 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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