atrea_control 3.0.1 → 3.1.0

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: 20263e53229b3ddf7cda715887e96db0e41859f76283ea39be936026350a9856
4
- data.tar.gz: 1ad093d3927b23422394f4a0ee1df6cbd0613d7ef059a766ecd4e07c18f68710
3
+ metadata.gz: 5690a9a78277344372417c1df8158c7b1b2becfdd461abd9c3bd46efdf93e46a
4
+ data.tar.gz: 22a0cbeefafd222b0670b674099d821dbbdbe1ad597218adb6694194e321724f
5
5
  SHA512:
6
- metadata.gz: 8c97451f757393eaeb5cb3f98d7bd3b70bd1a962f0dd892528d5109604113b1fa43e138883dedfe598b8b08a388be8804a8b0b08c6a5059070d6b1c7d91fc0c5
7
- data.tar.gz: ce1f31d0f7da01b6c407fc8c310717d456bc8654917835d8e809dd3d21f114b89455212c2d84cde458bd14ec55ef0ce9f46b1fde5f8984ea9554a59ae590e27f
6
+ metadata.gz: fb10dd338ab4969d9184b79f098901b3b0c9bf42e89d1fe1a106e2b97a83b9ec35bef7f8169d566991f95fc07f54d1fcfe257b3a339668cd09d633662f4f36e0
7
+ data.tar.gz: d1dc59a9dc1b00461e48d58c0f6388c6680619f4181eb56cf17612cb856e1d957084064f125024410d7bc5f86a06e7f338808f10b19d8f652e2b3ebced1e9d13
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  matrix:
10
- ruby-version: [3.2, 3.3, 3]
10
+ ruby-version: [3.2, 3.3, 3.4, 3]
11
11
  steps:
12
12
  - uses: actions/checkout@v4
13
13
  - name: Set up Ruby
data/.gitignore CHANGED
@@ -8,6 +8,7 @@
8
8
  /pkg/
9
9
  /spec/reports/
10
10
  /tmp/
11
+ /vendor/
11
12
 
12
13
  # rspec failure tracking
13
14
  .rspec_status
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.7
1
+ 3.4.7
data/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
1
  ## [Unreleased]
2
+ ## [3.1.0] - 2025-11-14
3
+ ### Changed
4
+ - upgrade dependencies
5
+ - replace RestClient by Faraday
6
+
7
+ ## [3.0.1] - 2025-03-17
8
+ ### Security
9
+ - upgrade gems
10
+ ### Change
11
+ - update rubocop (plugins)
12
+
2
13
  ## [3.0.0] - 2025-01-25
3
14
  ### Removed
4
15
  - selenium-based login procedure
data/Gemfile.lock CHANGED
@@ -1,80 +1,82 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- atrea_control (3.0.1)
4
+ atrea_control (3.1.0)
5
+ faraday (~> 2.7)
6
+ faraday-cookie_jar (~> 0.0)
5
7
  i18n (~> 1.14)
6
8
  nokogiri (~> 1.15)
7
- rest-client (~> 2.1)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
13
  addressable (2.8.7)
13
14
  public_suffix (>= 2.0.2, < 7.0)
14
- ast (2.4.2)
15
- bigdecimal (3.1.9)
15
+ ast (2.4.3)
16
+ bigdecimal (3.3.1)
16
17
  coderay (1.1.3)
17
18
  concurrent-ruby (1.3.5)
18
- crack (1.0.0)
19
+ crack (1.0.1)
19
20
  bigdecimal
20
21
  rexml
21
- diff-lcs (1.6.0)
22
+ diff-lcs (1.6.2)
22
23
  docile (1.4.1)
23
24
  domain_name (0.6.20240107)
24
- hashdiff (1.1.2)
25
- http-accept (1.7.0)
26
- http-cookie (1.0.8)
25
+ faraday (2.14.0)
26
+ faraday-net_http (>= 2.0, < 3.5)
27
+ json
28
+ logger
29
+ faraday-cookie_jar (0.0.8)
30
+ faraday (>= 0.8.0)
31
+ http-cookie (>= 1.0.0)
32
+ faraday-net_http (3.4.2)
33
+ net-http (~> 0.5)
34
+ hashdiff (1.2.1)
35
+ http-cookie (1.1.0)
27
36
  domain_name (~> 0.5)
28
37
  i18n (1.14.7)
29
38
  concurrent-ruby (~> 1.0)
30
- json (2.10.2)
31
- language_server-protocol (3.17.0.4)
39
+ json (2.16.0)
40
+ language_server-protocol (3.17.0.5)
32
41
  lint_roller (1.1.0)
33
- logger (1.6.6)
42
+ logger (1.7.0)
34
43
  method_source (1.1.0)
35
- mime-types (3.6.0)
36
- logger
37
- mime-types-data (~> 3.2015)
38
- mime-types-data (3.2025.0304)
39
- netrc (0.11.0)
40
- nokogiri (1.18.4-arm64-darwin)
44
+ net-http (0.8.0)
45
+ uri (>= 0.11.1)
46
+ nokogiri (1.18.10-arm64-darwin)
41
47
  racc (~> 1.4)
42
- nokogiri (1.18.4-x86_64-darwin)
48
+ nokogiri (1.18.10-x86_64-darwin)
43
49
  racc (~> 1.4)
44
- nokogiri (1.18.4-x86_64-linux-gnu)
50
+ nokogiri (1.18.10-x86_64-linux-gnu)
45
51
  racc (~> 1.4)
46
- parallel (1.26.3)
47
- parser (3.3.7.1)
52
+ parallel (1.27.0)
53
+ parser (3.3.10.0)
48
54
  ast (~> 2.4.1)
49
55
  racc
56
+ prism (1.6.0)
50
57
  pry (0.15.2)
51
58
  coderay (~> 1.1)
52
59
  method_source (~> 1.0)
53
- public_suffix (6.0.1)
60
+ public_suffix (6.0.2)
54
61
  racc (1.8.1)
55
62
  rainbow (3.1.1)
56
- rake (13.2.1)
57
- regexp_parser (2.10.0)
58
- rest-client (2.1.0)
59
- http-accept (>= 1.7.0, < 2.0)
60
- http-cookie (>= 1.0.2, < 2.0)
61
- mime-types (>= 1.16, < 4.0)
62
- netrc (~> 0.8)
63
- rexml (3.4.1)
64
- rspec (3.13.0)
63
+ rake (13.3.1)
64
+ regexp_parser (2.11.3)
65
+ rexml (3.4.4)
66
+ rspec (3.13.2)
65
67
  rspec-core (~> 3.13.0)
66
68
  rspec-expectations (~> 3.13.0)
67
69
  rspec-mocks (~> 3.13.0)
68
- rspec-core (3.13.3)
70
+ rspec-core (3.13.6)
69
71
  rspec-support (~> 3.13.0)
70
- rspec-expectations (3.13.3)
72
+ rspec-expectations (3.13.5)
71
73
  diff-lcs (>= 1.2.0, < 2.0)
72
74
  rspec-support (~> 3.13.0)
73
- rspec-mocks (3.13.2)
75
+ rspec-mocks (3.13.7)
74
76
  diff-lcs (>= 1.2.0, < 2.0)
75
77
  rspec-support (~> 3.13.0)
76
- rspec-support (3.13.2)
77
- rubocop (1.74.0)
78
+ rspec-support (3.13.6)
79
+ rubocop (1.81.7)
78
80
  json (~> 2.3)
79
81
  language_server-protocol (~> 3.17.0.2)
80
82
  lint_roller (~> 1.1.0)
@@ -82,25 +84,27 @@ GEM
82
84
  parser (>= 3.3.0.2)
83
85
  rainbow (>= 2.2.2, < 4.0)
84
86
  regexp_parser (>= 2.9.3, < 3.0)
85
- rubocop-ast (>= 1.38.0, < 2.0)
87
+ rubocop-ast (>= 1.47.1, < 2.0)
86
88
  ruby-progressbar (~> 1.7)
87
89
  unicode-display_width (>= 2.4.0, < 4.0)
88
- rubocop-ast (1.39.0)
89
- parser (>= 3.3.1.0)
90
- rubocop-rspec (3.5.0)
90
+ rubocop-ast (1.48.0)
91
+ parser (>= 3.3.7.2)
92
+ prism (~> 1.4)
93
+ rubocop-rspec (3.8.0)
91
94
  lint_roller (~> 1.1)
92
- rubocop (~> 1.72, >= 1.72.1)
95
+ rubocop (~> 1.81)
93
96
  ruby-progressbar (1.13.0)
94
97
  simplecov (0.22.0)
95
98
  docile (~> 1.1)
96
99
  simplecov-html (~> 0.11)
97
100
  simplecov_json_formatter (~> 0.1)
98
- simplecov-html (0.13.1)
101
+ simplecov-html (0.13.2)
99
102
  simplecov_json_formatter (0.1.4)
100
- unicode-display_width (3.1.4)
101
- unicode-emoji (~> 4.0, >= 4.0.4)
102
- unicode-emoji (4.0.4)
103
- webmock (3.25.1)
103
+ unicode-display_width (3.2.0)
104
+ unicode-emoji (~> 4.1)
105
+ unicode-emoji (4.1.0)
106
+ uri (1.1.1)
107
+ webmock (3.26.1)
104
108
  addressable (>= 2.8.0)
105
109
  crack (>= 0.3.2)
106
110
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -109,6 +113,7 @@ PLATFORMS
109
113
  arm64-darwin-22
110
114
  arm64-darwin-23
111
115
  arm64-darwin-24
116
+ arm64-darwin-25
112
117
  x86_64-darwin-20
113
118
  x86_64-linux
114
119
 
@@ -123,4 +128,4 @@ DEPENDENCIES
123
128
  webmock (~> 3.14)
124
129
 
125
130
  BUNDLED WITH
126
- 2.6.6
131
+ 2.7.2
@@ -18,9 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.metadata["homepage_uri"] = spec.homepage
19
19
  spec.metadata["source_code_uri"] = "https://github.com/luk4s/atrea_control"
20
20
  spec.metadata["changelog_uri"] = "https://github.com/luk4s/atrea_control/CHANGELOG.md"
21
- spec.metadata = {
22
- "rubygems_mfa_required" => "true",
23
- }
21
+ spec.metadata["rubygems_mfa_required"] = "true"
22
+
24
23
  # Specify which files should be added to the gem when it is released.
25
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
26
25
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -36,7 +35,8 @@ Gem::Specification.new do |spec|
36
35
  # For more information and examples about making a new gem, checkout our
37
36
  # guide at: https://bundler.io/guides/creating_gem.html
38
37
 
38
+ spec.add_dependency "faraday", "~> 2.7"
39
+ spec.add_dependency "faraday-cookie_jar", "~> 0.0"
39
40
  spec.add_dependency "i18n", "~> 1.14"
40
41
  spec.add_dependency "nokogiri", "~> 1.15"
41
- spec.add_dependency "rest-client", "~> 2.1"
42
42
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "nokogiri"
4
- require "rest-client"
4
+ require "faraday"
5
+ require "faraday-cookie_jar"
5
6
  require "securerandom"
6
7
 
7
8
  module AtreaControl
@@ -21,6 +22,7 @@ module AtreaControl
21
22
  def initialize(login:, password:)
22
23
  @login = login
23
24
  @password = password
25
+ @jar = HTTP::CookieJar.new
24
26
  end
25
27
 
26
28
  # Perform login procedure for retrieve `sid` (auth_token)
@@ -29,8 +31,14 @@ module AtreaControl
29
31
  def call
30
32
  @sid = sid
31
33
  if @sid == "0"
32
- re_login = RestClient.post "#{AtreaControl::Duplex::CONTROL_URI}/apps/rd5Control/handle.php?action=unitLogin&user=#{user_id}&unit=#{unit_id}&table=userUnits&idPwd=#{unit[:iid]}&#{SecureRandom.hex(2)}&_ts=#{SecureRandom.hex(4)}",
33
- { comm: "config/login.cgi?magic=" }, headers
34
+ login_url = "#{AtreaControl::Duplex::CONTROL_URI}/apps/rd5Control/handle.php?" \
35
+ "action=unitLogin&user=#{user_id}&unit=#{unit_id}&table=userUnits&" \
36
+ "idPwd=#{unit[:iid]}&#{SecureRandom.hex(2)}&_ts=#{SecureRandom.hex(4)}"
37
+ re_login = connection.post(login_url) do |req|
38
+ req.body = { comm: "config/login.cgi?magic=" }
39
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
40
+ req.headers["App-name"] = "rd5Control"
41
+ end
34
42
  time = Nokogiri::XML(re_login.body).at_xpath("//sended")["time"].to_i
35
43
  logger.debug "Login in #{time} seconds..."
36
44
  time.times do
@@ -55,9 +63,11 @@ module AtreaControl
55
63
  # Retrieve user details from RD5 core.php?action=init
56
64
  # @return [Hash] - user_id, name
57
65
  def user
58
- core_init = RestClient.get "#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?action=init&_ts=#{SecureRandom.hex(4)}",
59
- headers
60
- client = Nokogiri::XML(core_init.body).at_xpath("//client")
66
+ response = connection.get("#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?action=init&_ts=#{SecureRandom.hex(4)}") do |req|
67
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
68
+ req.headers["App-name"] = "rd5Control"
69
+ end
70
+ client = Nokogiri::XML(response.body).at_xpath("//client")
61
71
  user_id = client["id"]
62
72
  name = client["name"]
63
73
  logger.debug "User ID: #{user_id}, User Name: #{name}"
@@ -71,10 +81,16 @@ module AtreaControl
71
81
 
72
82
  # For some reason, this requests must be done before `unit_id` requested
73
83
  def run_rd5_app
74
- RestClient.post "#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?Sync=1&action=run&object=app&lng=28&rVer=1&_ts=#{SecureRandom.hex(4)}",
75
- { name: "rd5Control", path: "apps/rd5Control/" }, headers
76
- RestClient.post "#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?Sync=1&action=load&object=setting&_ts=#{SecureRandom.hex(4)}",
77
- { path: "apps/rd5Control" }, headers
84
+ connection.post("#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?Sync=1&action=run&object=app&lng=28&rVer=1&_ts=#{SecureRandom.hex(4)}") do |req|
85
+ req.body = { name: "rd5Control", path: "apps/rd5Control/" }
86
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
87
+ req.headers["App-name"] = "rd5Control"
88
+ end
89
+ connection.post("#{AtreaControl::Duplex::CONTROL_URI}/core/core.php?Sync=1&action=load&object=setting&_ts=#{SecureRandom.hex(4)}") do |req|
90
+ req.body = { path: "apps/rd5Control" }
91
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
92
+ req.headers["App-name"] = "rd5Control"
93
+ end
78
94
  end
79
95
 
80
96
  # Retrieve overview of RD5 unit
@@ -83,9 +99,11 @@ module AtreaControl
83
99
  return @unit if @unit
84
100
 
85
101
  # run_rd5_app
86
- units_table = RestClient.get "#{AtreaControl::Duplex::CONTROL_URI}/_data/data.php?Sync=1&action=getdata&rH&rE&table=userUnits&ds=rd5&_ts=#{SecureRandom.hex(4)}",
87
- headers
88
- item = Nokogiri::XML(units_table.body).at_xpath("//i")
102
+ response = connection.get("#{AtreaControl::Duplex::CONTROL_URI}/_data/data.php?Sync=1&action=getdata&rH&rE&table=userUnits&ds=rd5&_ts=#{SecureRandom.hex(4)}") do |req|
103
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
104
+ req.headers["App-name"] = "rd5Control"
105
+ end
106
+ item = Nokogiri::XML(response.body).at_xpath("//i")
89
107
  unit_number = item["unit"]
90
108
  iid = item["id"]
91
109
  @unit ||= { unit_number:, iid: }
@@ -96,16 +114,20 @@ module AtreaControl
96
114
  def unit_id
97
115
  return @unit_id if @unit_id
98
116
 
99
- records = RestClient.get "#{AtreaControl::Duplex::CONTROL_URI}/_data/data.php?Sync=1&action=getrecord&id=#{unit[:unit_number]}&table=units&ds=rd5&_ts=#{SecureRandom.hex(4)}",
100
- headers
101
- @unit_id ||= Nokogiri::XML(records.body).at_xpath("//table/i")["ident"]
117
+ response = connection.get("#{AtreaControl::Duplex::CONTROL_URI}/_data/data.php?Sync=1&action=getrecord&id=#{unit[:unit_number]}&table=units&ds=rd5&_ts=#{SecureRandom.hex(4)}") do |req|
118
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
119
+ req.headers["App-name"] = "rd5Control"
120
+ end
121
+ @unit_id ||= Nokogiri::XML(response.body).at_xpath("//table/i")["ident"]
102
122
  end
103
123
 
104
124
  def sid
105
- data = RestClient.get "#{AtreaControl::Duplex::CONTROL_URI}/apps/rd5Control/handle.php?Sync=1&action=unitQuery&query=loged&user=#{user_id}&unit=#{unit_id}&#{SecureRandom.hex(2)}&_ts=#{SecureRandom.hex(4)}",
106
- headers
107
- logger.debug data.body
108
- Nokogiri::XML(data.body).at_xpath("//login")["sid"]
125
+ response = connection.get("#{AtreaControl::Duplex::CONTROL_URI}/apps/rd5Control/handle.php?Sync=1&action=unitQuery&query=loged&user=#{user_id}&unit=#{unit_id}&#{SecureRandom.hex(2)}&_ts=#{SecureRandom.hex(4)}") do |req|
126
+ req.headers["Cookie"] = "PHPSESSID=#{php_session_id}"
127
+ req.headers["App-name"] = "rd5Control"
128
+ end
129
+ logger.debug response.body
130
+ Nokogiri::XML(response.body).at_xpath("//login")["sid"]
109
131
  end
110
132
 
111
133
  # @!group Private methods
@@ -115,14 +137,21 @@ module AtreaControl
115
137
  return @php_session_id if @php_session_id
116
138
 
117
139
  payload = { username: @login, password: @password }
118
- RestClient.post "#{AtreaControl::Duplex::CONTROL_URI}?action=login", payload do |response|
119
- @php_session_id = response.cookies["PHPSESSID"]
120
- end
140
+ connection.post("#{AtreaControl::Duplex::CONTROL_URI}?action=login", payload)
141
+
142
+ # Extract PHPSESSID from cookie jar
143
+ cookies = @jar.cookies(URI.parse(AtreaControl::Duplex::CONTROL_URI))
144
+ @php_session_id = cookies.find { |c| c.name == "PHPSESSID" }&.value
121
145
  @php_session_id
122
146
  end
123
147
 
124
- def headers
125
- { cookies: { PHPSESSID: php_session_id }, "App-name": "rd5Control" }
148
+ # Create Faraday connection with cookie jar
149
+ def connection
150
+ @connection ||= Faraday.new do |f|
151
+ f.request :url_encoded
152
+ f.use :cookie_jar, jar: @jar
153
+ f.adapter Faraday.default_adapter
154
+ end
126
155
  end
127
156
  end
128
157
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rest-client"
3
+ require "faraday"
4
4
 
5
5
  module AtreaControl
6
6
  module Duplex
@@ -24,7 +24,12 @@ module AtreaControl
24
24
  # @param [Hash] params
25
25
  # @option params [String] :_t ("config/xml.xml") file name
26
26
  def call(params)
27
- RestClient.get "#{AtreaControl::Duplex::CONTROL_URI}/comm/sw/unit.php", params: @params.merge(params)
27
+ @connection ||= Faraday.new do |f|
28
+ f.request :url_encoded
29
+ f.adapter Faraday.default_adapter
30
+ end
31
+
32
+ @connection.get("#{AtreaControl::Duplex::CONTROL_URI}/comm/sw/unit.php", @params.merge(params))
28
33
  end
29
34
  end
30
35
  end
@@ -3,5 +3,5 @@
3
3
  # :nocov:
4
4
 
5
5
  module AtreaControl
6
- VERSION = "3.0.1"
6
+ VERSION = "3.1.0"
7
7
  end
metadata CHANGED
@@ -1,57 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atrea_control
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukáš Pokorný
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-03-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: i18n
13
+ name: faraday
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '1.14'
18
+ version: '2.7'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '1.14'
25
+ version: '2.7'
27
26
  - !ruby/object:Gem::Dependency
28
- name: nokogiri
27
+ name: faraday-cookie_jar
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '1.15'
32
+ version: '0.0'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '1.15'
39
+ version: '0.0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: rest-client
41
+ name: i18n
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '2.1'
46
+ version: '1.14'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '2.1'
53
+ version: '1.14'
54
+ - !ruby/object:Gem::Dependency
55
+ name: nokogiri
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.15'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.15'
55
68
  description: Read data from web controller of RD5 duplex by Atrea.
56
69
  email:
57
70
  - pokorny@luk4s.cz
@@ -89,8 +102,11 @@ files:
89
102
  homepage: https://github.com/luk4s/atrea_control
90
103
  licenses: []
91
104
  metadata:
105
+ allowed_push_host: https://rubygems.org
106
+ homepage_uri: https://github.com/luk4s/atrea_control
107
+ source_code_uri: https://github.com/luk4s/atrea_control
108
+ changelog_uri: https://github.com/luk4s/atrea_control/CHANGELOG.md
92
109
  rubygems_mfa_required: 'true'
93
- post_install_message:
94
110
  rdoc_options: []
95
111
  require_paths:
96
112
  - lib
@@ -105,8 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
121
  - !ruby/object:Gem::Version
106
122
  version: '0'
107
123
  requirements: []
108
- rubygems_version: 3.5.22
109
- signing_key:
124
+ rubygems_version: 3.6.9
110
125
  specification_version: 4
111
126
  summary: Get data control.atrea.eu
112
127
  test_files: []