openhab-scripting 2.19.0 → 2.20.1

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: 64cbcfa58ba3a4d63a88514b61fdbe811a317e3902c61e16119e0d97a89a3523
4
- data.tar.gz: 075ca2dbc459da17c0c2f13b6a05bf6c8ffb829b5d0f96965b449820db59b216
3
+ metadata.gz: c8d7de90fee54798d88e51a4ea9f7ac6437852d7c4eb5da2b847700f0dedd5de
4
+ data.tar.gz: 9a91e9a2ee0d977f4e2a0dd9b0ba50b1db89c71554596bfd8ca86bd9ec168d68
5
5
  SHA512:
6
- metadata.gz: 4ae006b45842d227600eaaeb094285800bddf16935388d6c686112c31bd596ddc8d7fa53eebc6d1b83c0e4053c379662fbfcebab441794bdc183143c27004f92
7
- data.tar.gz: 0506ac926852a72f400d8c47d701205e27a22b3514878a366eba39812b5226358c1a5e11a95bce3376b03fef2adceac9ccc1f76e5d3dca0a079b2883d565e8ea
6
+ metadata.gz: 1d956f08c8884347de414eb9de04a69184c9d95a39c35bd0ff8685ceefb28efe64945a944a87efd11da16f5dceda77be453693b84cc816a7541e3e923b218479
7
+ data.tar.gz: ab3fd69c22c115a03848b112922f9b489d69c35a1bac3040ef40c9a73ffa8540e73318011768647fe0793a197973239e028949126a83ed233340efbeb667f490
@@ -101,10 +101,10 @@ module OpenHAB
101
101
  #
102
102
  # Get the string representation of the state of the item
103
103
  #
104
- # @return [String] State of the item as a string if not UNDEF or NULL, nil otherwise
104
+ # @return [String] State of the item as a string
105
105
  #
106
106
  def to_s
107
- state&.to_s
107
+ method(:state).super_method.call.to_s # call the super state to include UNDEF/NULL
108
108
  end
109
109
 
110
110
  #
@@ -134,6 +134,18 @@ module OpenHAB
134
134
  end
135
135
  end
136
136
 
137
+ #
138
+ # Implements Hash#dig-like functionaity to metadata
139
+ #
140
+ # @param [String] key The first key
141
+ # @param [Array<String, Symbol>] keys More keys to dig deeper
142
+ #
143
+ # @return [OpenHAB::DSL::MonkeyPatch::Items::MetadataItem], or nil if the namespace doesn't exist
144
+ #
145
+ def dig(key, *keys)
146
+ keys.empty? ? self[key]&.value : self[key]&.dig(*keys)
147
+ end
148
+
137
149
  #
138
150
  # Enumerates through all the namespaces
139
151
  #
@@ -70,7 +70,7 @@ module OpenHAB
70
70
  def create_queue(inputs)
71
71
  case check_guards(event: inputs&.dig('event'))
72
72
  when true
73
- @run_queue.dup
73
+ @run_queue.dup.grep_v(RuleConfig::Otherwise)
74
74
  when false
75
75
  @run_queue.dup.grep(RuleConfig::Otherwise)
76
76
  end
@@ -145,16 +145,14 @@ module OpenHAB
145
145
  #
146
146
  #
147
147
  def process_trigger_delay(trigger_delay, mod, inputs)
148
- if check_trigger_guards(trigger_delay, inputs)
148
+ if trigger_delay.timer_active?
149
+ process_active_timer(inputs, mod, trigger_delay)
150
+ elsif check_trigger_guards(trigger_delay, inputs)
149
151
  logger.trace("Trigger Guards Matched for #{trigger_delay}, delaying rule execution")
150
152
  # Add timer and attach timer to delay object, and also state being tracked to so timer can be cancelled if
151
153
  # state changes
152
154
  # Also another timer should not be created if changed to same value again but instead rescheduled
153
- if trigger_delay.timer_active?
154
- process_active_timer(inputs, mod, trigger_delay)
155
- else
156
- create_trigger_delay_timer(inputs, mod, trigger_delay)
157
- end
155
+ create_trigger_delay_timer(inputs, mod, trigger_delay)
158
156
  else
159
157
  logger.trace("Trigger Guards did not match for #{trigger_delay}, ignoring trigger.")
160
158
  end
@@ -173,7 +171,8 @@ module OpenHAB
173
171
  trigger_delay.timer = after(trigger_delay.duration) do
174
172
  logger.trace("Delay Complete for #{trigger_delay}, executing rule")
175
173
  trigger_delay.timer = nil
176
- process_queue(@run_queue.dup, mod, inputs)
174
+ queue = create_queue(inputs)
175
+ process_queue(queue, mod, inputs)
177
176
  end
178
177
  trigger_delay.tracking_to = inputs['newState']
179
178
  end
@@ -5,5 +5,5 @@
5
5
  #
6
6
  module OpenHAB
7
7
  # @return [String] Version of OpenHAB helper libraries
8
- VERSION = '2.19.0'
8
+ VERSION = '2.20.1'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openhab-scripting
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.0
4
+ version: 2.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian O'Connell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-15 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler