atrea_control 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +31 -5
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +7 -3
- data/lib/atrea_control/duplex.rb +23 -10
- data/lib/atrea_control/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3801a6bbd9c137e26eecbf9adcb43d8d1ba7fd7dbcc19be4a95ff1ae5a189a47
|
4
|
+
data.tar.gz: efd8adb1f53738b28aac974260c0fca23d46ab3329ec745d2fce6d5bb73c43cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a22728dedc9c10022d86dc433d81cacd91193a1851f4302d066763fa8f600c9a632dc02d235f97560d7300f72618ce25c57f83e4581085d049d41c36f7e0b340
|
7
|
+
data.tar.gz: e4348ee806d25350c3b2d1f861cec60f8b77504005aabd57115a82966ebb084735f7a8d04a4f79538dbbaa9dff777a34429551d90f302ebdf20dfddc632a09a2
|
data/.rubocop_todo.yml
CHANGED
@@ -1,11 +1,28 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config --auto-gen-only-exclude`
|
3
|
-
# on 2021-10-
|
3
|
+
# on 2021-10-30 20:32:55 UTC using RuboCop version 1.22.2.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
+
# Offense count: 2
|
10
|
+
# Cop supports --auto-correct.
|
11
|
+
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
12
|
+
# SupportedStylesForExponentOperator: space, no_space
|
13
|
+
Layout/SpaceAroundOperators:
|
14
|
+
Exclude:
|
15
|
+
- '_x.rb'
|
16
|
+
|
17
|
+
# Offense count: 2
|
18
|
+
# Cop supports --auto-correct.
|
19
|
+
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
20
|
+
# SupportedStyles: space, no_space, compact
|
21
|
+
# SupportedStylesForEmptyBraces: space, no_space
|
22
|
+
Layout/SpaceInsideHashLiteralBraces:
|
23
|
+
Exclude:
|
24
|
+
- '_x.rb'
|
25
|
+
|
9
26
|
# Offense count: 2
|
10
27
|
# Configuration parameters: CountComments, Max, CountAsOne, ExcludedMethods, IgnoredMethods.
|
11
28
|
# IgnoredMethods: refine
|
@@ -20,13 +37,13 @@ Metrics/ClassLength:
|
|
20
37
|
Exclude:
|
21
38
|
- 'lib/atrea_control/duplex.rb'
|
22
39
|
|
23
|
-
# Offense count:
|
40
|
+
# Offense count: 4
|
24
41
|
# Configuration parameters: .
|
25
42
|
# SupportedStyles: have_received, receive
|
26
43
|
RSpec/MessageSpies:
|
27
44
|
EnforcedStyle: receive
|
28
45
|
|
29
|
-
# Offense count:
|
46
|
+
# Offense count: 1
|
30
47
|
# Configuration parameters: Max.
|
31
48
|
RSpec/MultipleExpectations:
|
32
49
|
Exclude:
|
@@ -37,7 +54,7 @@ RSpec/StubbedMock:
|
|
37
54
|
Exclude:
|
38
55
|
- 'spec/atrea_control/duplex_spec.rb'
|
39
56
|
|
40
|
-
# Offense count:
|
57
|
+
# Offense count: 6
|
41
58
|
RSpec/SubjectStub:
|
42
59
|
Exclude:
|
43
60
|
- 'spec/atrea_control/duplex_spec.rb'
|
@@ -50,14 +67,23 @@ Style/Documentation:
|
|
50
67
|
- 'test/**/*'
|
51
68
|
- 'lib/atrea_control.rb'
|
52
69
|
|
53
|
-
# Offense count:
|
70
|
+
# Offense count: 2
|
54
71
|
# Cop supports --auto-correct.
|
55
72
|
# Configuration parameters: EnforcedStyle.
|
56
73
|
# SupportedStyles: always, always_true, never
|
57
74
|
Style/FrozenStringLiteralComment:
|
58
75
|
Exclude:
|
76
|
+
- '_x.rb'
|
59
77
|
- 'spec/atrea_control/duplex_spec.rb'
|
60
78
|
|
79
|
+
# Offense count: 2
|
80
|
+
# Cop supports --auto-correct.
|
81
|
+
# Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
82
|
+
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
|
83
|
+
Style/HashSyntax:
|
84
|
+
Exclude:
|
85
|
+
- '_x.rb'
|
86
|
+
|
61
87
|
# Offense count: 1
|
62
88
|
# Cop supports --auto-correct.
|
63
89
|
# Configuration parameters: EnforcedStyle.
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
atrea_control (1.2.
|
4
|
+
atrea_control (1.2.1)
|
5
5
|
nokogiri (~> 1.12)
|
6
6
|
rest-client (~> 2.1)
|
7
7
|
selenium-webdriver (~> 3.142)
|
@@ -13,6 +13,7 @@ GEM
|
|
13
13
|
public_suffix (>= 2.0.2, < 5.0)
|
14
14
|
ast (2.4.2)
|
15
15
|
childprocess (3.0.0)
|
16
|
+
coderay (1.1.3)
|
16
17
|
crack (0.4.5)
|
17
18
|
rexml
|
18
19
|
diff-lcs (1.4.4)
|
@@ -23,17 +24,19 @@ GEM
|
|
23
24
|
http-accept (1.7.0)
|
24
25
|
http-cookie (1.0.4)
|
25
26
|
domain_name (~> 0.5)
|
27
|
+
method_source (1.0.0)
|
26
28
|
mime-types (3.3.1)
|
27
29
|
mime-types-data (~> 3.2015)
|
28
30
|
mime-types-data (3.2021.0901)
|
29
31
|
netrc (0.11.0)
|
30
32
|
nokogiri (1.12.5-x86_64-darwin)
|
31
33
|
racc (~> 1.4)
|
32
|
-
nokogiri (1.12.5-x86_64-linux)
|
33
|
-
racc (~> 1.4)
|
34
34
|
parallel (1.21.0)
|
35
35
|
parser (3.0.2.0)
|
36
36
|
ast (~> 2.4.1)
|
37
|
+
pry (0.14.1)
|
38
|
+
coderay (~> 1.1)
|
39
|
+
method_source (~> 1.0)
|
37
40
|
public_suffix (4.0.6)
|
38
41
|
racc (1.6.0)
|
39
42
|
rainbow (3.0.0)
|
@@ -97,6 +100,7 @@ PLATFORMS
|
|
97
100
|
|
98
101
|
DEPENDENCIES
|
99
102
|
atrea_control!
|
103
|
+
pry
|
100
104
|
rake (~> 13.0)
|
101
105
|
rspec (~> 3.10)
|
102
106
|
rubocop (~> 1.7)
|
data/lib/atrea_control/duplex.rb
CHANGED
@@ -21,7 +21,6 @@ module AtreaControl
|
|
21
21
|
# @option sensors_map [String] :current_power
|
22
22
|
# @option sensors_map [String] :current_mode
|
23
23
|
def initialize(login:, password:, sensors_map: Config.default_sensors_map)
|
24
|
-
@logged = false
|
25
24
|
@login = login
|
26
25
|
@password = password
|
27
26
|
@sensors = sensors_map
|
@@ -37,12 +36,26 @@ module AtreaControl
|
|
37
36
|
end
|
38
37
|
|
39
38
|
def logged?
|
40
|
-
|
39
|
+
user&.[] "loged"
|
40
|
+
end
|
41
|
+
|
42
|
+
def login_in_progress?
|
43
|
+
@login_in_progress
|
41
44
|
end
|
42
45
|
|
43
46
|
# Login into control
|
44
47
|
def login
|
48
|
+
@login_in_progress = true
|
49
|
+
logger.debug "start new login"
|
45
50
|
driver.get CONTROL_URI
|
51
|
+
submit_login_form if user.nil? || !logged?
|
52
|
+
finish_login
|
53
|
+
@login_in_progress = false
|
54
|
+
inspect
|
55
|
+
end
|
56
|
+
|
57
|
+
# Submit given credentials and proceed login
|
58
|
+
def submit_login_form
|
46
59
|
form = driver.find_element(id: "loginFrm")
|
47
60
|
username = form.find_element(name: "username")
|
48
61
|
username.send_keys @login
|
@@ -51,7 +64,6 @@ module AtreaControl
|
|
51
64
|
|
52
65
|
submit = form.find_element(css: "input[type=submit]")
|
53
66
|
submit.click
|
54
|
-
finish_login && inspect
|
55
67
|
end
|
56
68
|
|
57
69
|
# Retrieve dashboard URI from object tag and open it again
|
@@ -59,7 +71,6 @@ module AtreaControl
|
|
59
71
|
uri = driver.find_element(tag_name: "object").attribute "data"
|
60
72
|
driver.get uri
|
61
73
|
logger.debug "#{name} login success"
|
62
|
-
@logged = true
|
63
74
|
end
|
64
75
|
|
65
76
|
# @return [String]
|
@@ -80,9 +91,10 @@ module AtreaControl
|
|
80
91
|
@unit_id ||= driver.execute_script("return window._unit")
|
81
92
|
end
|
82
93
|
|
83
|
-
#
|
84
|
-
|
85
|
-
|
94
|
+
# Window.user object from atrea
|
95
|
+
# @return [Hash, nil]
|
96
|
+
def user
|
97
|
+
driver.execute_script("return window.user")
|
86
98
|
end
|
87
99
|
|
88
100
|
# @return [String]
|
@@ -95,7 +107,6 @@ module AtreaControl
|
|
95
107
|
|
96
108
|
# quit selenium browser
|
97
109
|
def close
|
98
|
-
@logged = false
|
99
110
|
@user_auth = nil
|
100
111
|
driver.quit
|
101
112
|
remove_instance_variable :@driver
|
@@ -124,12 +135,14 @@ module AtreaControl
|
|
124
135
|
end
|
125
136
|
|
126
137
|
def call_unit!
|
127
|
-
return false
|
138
|
+
return false if @login_in_progress
|
128
139
|
|
140
|
+
logger.debug "call_unit!"
|
129
141
|
parse_response(response_comm_unit)
|
130
142
|
@valid_for = Time.now
|
131
143
|
as_json
|
132
144
|
rescue RestClient::Forbidden
|
145
|
+
logger.debug "session expired..."
|
133
146
|
close if @logged
|
134
147
|
login && call_unit!
|
135
148
|
end
|
@@ -183,7 +196,7 @@ module AtreaControl
|
|
183
196
|
params = {
|
184
197
|
_user: user_id,
|
185
198
|
_unit: unit_id,
|
186
|
-
auth:
|
199
|
+
auth: user&.[]("auth"),
|
187
200
|
_t: "config/xml.xml",
|
188
201
|
}
|
189
202
|
autologin_token = CGI.escape([@login, @password].join("\b"))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atrea_control
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukáš Pokorný
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|