rsmp 0.6.4 → 0.6.5

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: 33b8c859b9c8450af6a45d52a9d42d982c5becdaf1d4424f398b417bc1c387d8
4
- data.tar.gz: 7f194bb392a69555f7ba30364466dfed9eeb1b04996505fa13af13d9045bb071
3
+ metadata.gz: 7ffe9f097053c9814ad119cbd6a01192cd20c02d3ca1fffa6269dbdf534f419b
4
+ data.tar.gz: 9848398d419a76f16fa8eb1f527d4c6b055b17886a5ee689b7607c891103d5a1
5
5
  SHA512:
6
- metadata.gz: 2d9da45e5f1a96756cd50f58ea3ce16dc0de51138daa45aa114f432e0531595883c5cf3dba86ad63dd0a33aed7ba02d706f058378c257129a8b877eb45e2246b
7
- data.tar.gz: 59965992a0e7bcdd6e401fac5baa2e8839c392713812da579865020d6cf5d9cf73d51b250f9be72cab3264fd5a9edd287e85619e2ebab0259fb303da9cfe25ff
6
+ metadata.gz: d974b915cbc32bee428cc7f39a1e26134c6db34f72590ad9bd67400ad71ce831037a82341601369aa6582c1e4b5ecf8d4e6f8c3249a4375716bc877ca1cc7cec
7
+ data.tar.gz: 301eb51aecb05c57fc3395f3a06df33846e24fdd863db2ff65e81e9fc1b7c23c4e6b40e508b15a3ec0c92e87595ce78317773cfca6e13ec72ca9609d037cb1f1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.6.4)
4
+ rsmp (0.6.5)
5
5
  async (~> 1.29.1)
6
6
  async-io (~> 1.32.1)
7
7
  colorize (~> 0.8.1)
@@ -79,16 +79,17 @@ module RSMP
79
79
 
80
80
  def handle_alarm message
81
81
  code = message.attribute('aCId')
82
- alarm = @alarms[code]
83
- if alarm
84
- if alarm.differ? message
85
- @alarms[code] = alarm
86
- else
87
- raise RepeatedAlarmError.new("no changes from previous alarm #{alarm.m_id_short}")
82
+ previous = @alarms[code]
83
+ if previous
84
+ unless message.differ?(previous)
85
+ raise RepeatedAlarmError.new("no changes from previous alarm #{previous.m_id_short}")
86
+ end
87
+ if Time.parse(message.attribute('aTs')) < Time.parse(previous.attribute('aTs'))
88
+ raise RepeatedAlarmError.new("timestamp is earlier than previous alarm #{previous.m_id_short}")
88
89
  end
89
- else
90
- @alarms[code] = message
91
90
  end
91
+ ensure
92
+ @alarms[code] = message
92
93
  end
93
94
 
94
95
  # Handle an incoming status respone, by storing the values
data/lib/rsmp/error.rb CHANGED
@@ -64,4 +64,7 @@ module RSMP
64
64
 
65
65
  class RepeatedStatusError < Error
66
66
  end
67
+
68
+ class TimestampError < Error
69
+ end
67
70
  end
data/lib/rsmp/message.rb CHANGED
@@ -126,7 +126,7 @@ module RSMP
126
126
  end
127
127
 
128
128
  def initialize attributes = {}
129
- @timestamp = Time.now # this timestamp is for internal use, and does not the clock
129
+ @timestamp = Time.now # this timestamp is for internal use, and does not use the clock
130
130
  # in the node, which can be set by an rsmp supervisor
131
131
 
132
132
  @attributes = { "mType"=> "rSMsg" }.merge attributes
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin