timex_datalink_client 0.12.1 → 0.12.3

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: b3dd9589b7f2f90dd6916170d80c7d201a3f11a1d3ffbc6f40dd04c6f16bf9d9
4
- data.tar.gz: 35e091660c40e0e5257f8ee6e9772d1e84c3eb8b7051ad6cf4b6f30d850480c4
3
+ metadata.gz: cf947122caab09ed616e7a81dc9e88c2b1d3a210814e4c40d340de888684826c
4
+ data.tar.gz: de8330a9394d9fe2e1a54bc1a4eed14e2655e419a488ca6f1479f7598afcc9e0
5
5
  SHA512:
6
- metadata.gz: f075ce75b8f807beaa941be6b7ce59d57f4f7c4e55054fbfc94bf710ad196b9ce5f45431c8ca28e3dcedf55f59b0433c4eba67717bcd4905c5aa9d82527ec0a8
7
- data.tar.gz: 1f20f4d972357c05f0d571a5e901e913ba26b48afd51c91c03aa83e1c257beff5dbf42845f532cd6ffb1ffd0fe304c748242bb2e676c7ff2c9947ff4ed12252e
6
+ metadata.gz: 3e9f46a09af303087acbd25f0b50b04bfa1dc176a8b78fcb31fd21b0d2da7157f83ea56540530b1eaea0e42a0b8c8627f5a333763f35da9f3fdf888d83b0f9fe
7
+ data.tar.gz: 6ccb2e3fc79f077e09e1b5c215046c02adc059c66e5fbcae8752c918d6115c68b31c108c732f3a9b022fc7d07ac07e81fa06ffa737e531d2a37ec97e37c6eb4e
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rubyserial"
3
+ require "serialport"
4
4
 
5
5
  class TimexDatalinkClient
6
6
  class NotebookAdapter
@@ -32,7 +32,7 @@ class TimexDatalinkClient
32
32
  packet.each do |byte|
33
33
  printf("%.2X ", byte) if verbose
34
34
 
35
- serial.write(byte.chr)
35
+ serial_port.write(byte.chr)
36
36
 
37
37
  sleep(byte_sleep)
38
38
  end
@@ -45,8 +45,8 @@ class TimexDatalinkClient
45
45
 
46
46
  private
47
47
 
48
- def serial
49
- @serial ||= Serial.new(serial_device)
48
+ def serial_port
49
+ @serial_port ||= SerialPort.new(serial_device)
50
50
  end
51
51
  end
52
52
  end
@@ -141,23 +141,23 @@ class TimexDatalinkClient
141
141
  end
142
142
 
143
143
  def second
144
- flex_time ? 0 : formatted_time.sec
144
+ flex_time ? 0 : time.sec
145
145
  end
146
146
 
147
147
  def hour
148
- flex_time ? 0 : formatted_time.hour
148
+ flex_time ? 0 : time.hour
149
149
  end
150
150
 
151
151
  def minute
152
- flex_time ? 0 : formatted_time.min
152
+ flex_time ? 0 : time.min
153
153
  end
154
154
 
155
155
  def month
156
- flex_time ? 0 : formatted_time.month
156
+ flex_time ? 0 : time.month
157
157
  end
158
158
 
159
159
  def day
160
- flex_time ? 0 : formatted_time.day
160
+ flex_time ? 0 : time.day
161
161
  end
162
162
 
163
163
  def formatted_name
@@ -169,15 +169,11 @@ class TimexDatalinkClient
169
169
  end
170
170
 
171
171
  def year_mod_1900
172
- flex_time ? 0 : formatted_time.year % 100
172
+ flex_time ? 0 : time.year % 100
173
173
  end
174
174
 
175
175
  def wday_from_monday
176
- flex_time ? 0 : (formatted_time.wday + 6) % 7
177
- end
178
-
179
- def formatted_time
180
- time.dst? ? time + 3600 : time
176
+ flex_time ? 0 : (time.wday + 6) % 7
181
177
  end
182
178
 
183
179
  def formatted_utc_offset
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_model"
4
+
3
5
  require "timex_datalink_client/helpers/lsb_msb_formatter"
4
6
 
5
7
  class TimexDatalinkClient
@@ -7,16 +9,23 @@ class TimexDatalinkClient
7
9
  class Eeprom
8
10
  class Calendar
9
11
  class Event
12
+ include ActiveModel::Validations
10
13
  include Helpers::LsbMsbFormatter
11
14
 
12
15
  FIVE_MINUTES_SECONDS = 300
13
16
 
14
- attr_accessor :time, :phrase
17
+ validates :time, comparison: {
18
+ greater_than_or_equal_to: :device_time,
19
+ message: "%{value} must be greater or equal to device time!"
20
+ }
21
+
22
+ attr_accessor :time, :phrase, :device_time
15
23
 
16
24
  # Create an Event instance.
17
25
  #
18
26
  # @param time [::Time] Time of event.
19
27
  # @param phrase [Array<Integer>] Phrase for event.
28
+ # @raise [ActiveModel::ValidationError] One or more model values are invalid.
20
29
  # @return [Event] Event instance.
21
30
  def initialize(time:, phrase:)
22
31
  @time = time
@@ -24,6 +33,10 @@ class TimexDatalinkClient
24
33
  end
25
34
 
26
35
  def time_formatted(device_time)
36
+ @device_time = device_time
37
+
38
+ validate!
39
+
27
40
  device_time_midnight = Time.new(device_time.year, device_time.month, device_time.day)
28
41
  seconds = (time - device_time_midnight).to_i
29
42
  five_minutes = seconds / FIVE_MINUTES_SECONDS
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class TimexDatalinkClient
4
- VERSION = "0.12.1"
4
+ VERSION = "0.12.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timex_datalink_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxwell Pray
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-07 00:00:00.000000000 Z
11
+ date: 2023-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.5.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubyserial
56
+ name: serialport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.6.0
61
+ version: 1.3.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.6.0
68
+ version: 1.3.2
69
69
  description:
70
70
  email: synthead@gmail.com
71
71
  executables: []
@@ -150,7 +150,7 @@ files:
150
150
  - lib/timex_datalink_client/protocol_9/time_name.rb
151
151
  - lib/timex_datalink_client/protocol_9/timer.rb
152
152
  - lib/timex_datalink_client/version.rb
153
- homepage: https://github.com/synthead/timex_datalink_client/tree/v0.12.1
153
+ homepage: https://github.com/synthead/timex_datalink_client/tree/v0.12.3
154
154
  licenses:
155
155
  - MIT
156
156
  metadata: {}
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - ">="
164
164
  - !ruby/object:Gem::Version
165
- version: '0'
165
+ version: 3.1.0
166
166
  required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  requirements:
168
168
  - - ">="