kobot 1.2.2 → 1.2.3

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: c5280569d35d3db17de90830bc1b6b2fa7fd4ec17c1b3efae0772a2329288fbe
4
- data.tar.gz: 51a08ceb2e07e577a503e6c5bbd17352e664612a9b6ae6fd6e3ca9aedc56a71e
3
+ metadata.gz: 3eba14b1e3b076a368dd700c2ac46a9db4fd13bf57a58e29797de7db7eb16fc3
4
+ data.tar.gz: 1926333cefbaf4272ae117cc7afb12284ed85d6ff41aa96a02094904599b5312
5
5
  SHA512:
6
- metadata.gz: 9ce2200116a9c36f384edbc2a0a2b47b37819ddb44fb8f590a1a1af1afd0859ea4d56c2022c4990f720f9bbd42eb4aaaf26986333298ed61580a4ad37b41bbed
7
- data.tar.gz: 783cd8e9c729404108119fc2c26b49729852c68e40e415dad7d5ab92066021a4c2496fe3aaeab355911ad174b848af1cda99510496a53ff282f5d4fa42f8d244
6
+ metadata.gz: '08ad9cb2d55c2931a34ed4243884a7e16c189d1d914e5aa935cfd4d32fc3d3d7567cdaecdb53de54e980e84ec4c6e696761b7f9b15fb65e3a0eef11f829370e5'
7
+ data.tar.gz: f8662e41fe53d35df04b1b530f946621330124684d6bd955e6b18e53830efaef74c22db66818a8a3958aa8a4745b4d37090419f538962c3a4876e8dbb9b6c1d7
@@ -18,3 +18,7 @@
18
18
  ### v1.2.2
19
19
  - Improved login screen wait and logging
20
20
  - Applied fix for offenses about empty lines and long lines reported by Rubocop
21
+
22
+ ### v1.2.3
23
+ - Improved validation logic to skip running due to weekend or intentional skips
24
+ - Refactored engine by reducing methods length based on reports by Rubocop
@@ -24,32 +24,19 @@ module Kobot
24
24
  # System errors or any unknown exceptions occurred if any are
25
25
  # to be popped up and should be handled by the outside caller.
26
26
  def start
27
- if weekend?
28
- if Config.force
29
- Kobot.logger.info("[Force] should have exited: today=#{@today} is weekend")
30
- else
31
- Kobot.logger.info("Today=#{@today} is weekend")
32
- return
33
- end
34
- end
35
- if skip?
36
- Kobot.logger.info("Today=#{@today} is skipped as per: --skip=#{Config.skip}")
37
- return
38
- end
39
- unless %i[in out].include? Config.clock
40
- Kobot.logger.warn("Invalid clock operation: #{Config.clock}")
41
- return
42
- end
27
+ validate_today!
43
28
  launch_browser
44
29
  login
45
30
  read_today_record
46
- verify_today_record!
31
+ validate_today_record!
47
32
  if Config.clock == :in
48
33
  clock_in!
49
34
  else
50
35
  clock_out!
51
36
  end
52
37
  logout
38
+ rescue KotSkip => e
39
+ Kobot.logger.warn(e.message)
53
40
  rescue KotRecordError => e
54
41
  Kobot.logger.warn(e.message)
55
42
  Mailer.send(clock_notify_message(status: e.message))
@@ -68,12 +55,20 @@ module Kobot
68
55
  Mailer.send(clock_notify_message(status: e.message))
69
56
  logout
70
57
  ensure
71
- Kobot.logger.info('Close browser')
72
- @browser&.quit
58
+ close_browser
73
59
  end
74
60
 
75
61
  private
76
62
 
63
+ def validate_today!
64
+ raise KotSkip, "Today=#{@today} is skipped as per: --skip=#{Config.skip}" if skip?
65
+
66
+ return unless weekend?
67
+ raise KotSkip, "Today=#{@today} is weekend" unless Config.force
68
+
69
+ Kobot.logger.info("[Force] should have exited: today=#{@today} is weekend")
70
+ end
71
+
77
72
  def launch_browser
78
73
  prefs = {
79
74
  profile: {
@@ -89,6 +84,13 @@ module Kobot
89
84
  Kobot.logger.info('Launch browser successful')
90
85
  end
91
86
 
87
+ def close_browser
88
+ return unless @browser
89
+
90
+ Kobot.logger.info('Close browser')
91
+ @browser.quit
92
+ end
93
+
92
94
  def login
93
95
  Kobot.logger.info("Navigate to: #{@top_url}")
94
96
  @browser.get @top_url
@@ -159,7 +161,7 @@ module Kobot
159
161
  end
160
162
  end
161
163
 
162
- def verify_today_record!
164
+ def validate_today_record!
163
165
  raise KotRecordError, "Today=#{@today} is not found on kot" if @kot_today.strip.empty?
164
166
 
165
167
  if kot_weekend?
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kobot
4
+ class KotSkip < StandardError
5
+ end
6
+
4
7
  class KotRecordError < StandardError
5
8
  end
6
9
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kobot
4
- VERSION = '1.2.2'
4
+ VERSION = '1.2.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kobot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Jiang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-03 00:00:00.000000000 Z
11
+ date: 2020-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: webdrivers