openhab-scripting 4.8.1 → 4.8.5

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: 4d0594ce30afe7ee9653b705d23d24bc48489f7c0d264a0dd246d59d4266dc82
4
- data.tar.gz: 2bec61de8afbaf4bbe180f510f6b797a9ab59449c506fc41f374d485c128698c
3
+ metadata.gz: 19b14c62e681500abaa99858522f7592e0a4d93f6966a5cf8e99157b0944cbe6
4
+ data.tar.gz: 071556f83604d539af3620a0796eef993edfc0bb224ad3dd08cf7d5a71e9d593
5
5
  SHA512:
6
- metadata.gz: 419fd04010222b680c6d8a3c6c5c78752add3a7d0912333e9623a20b4ffe83d8fcc5a3ec62c9df811e3fb794611e3d5bf8961776af9ee3d74c2239fd8c10160e
7
- data.tar.gz: f4e06ae879aee439acc8c6103093edd871f06e9c9ed89fb04fa74e5550849ea7e897e2e26b12c776aa93a2eacc4d9f0c00f2c3039ca73351e857cabd105d8577
6
+ metadata.gz: '01429a840f1af1e81886988f00ad628fa01dd7a7423ef2e20c59eb1d40822b573115d12a0c8c6fc093012ad29a70666bf280de52a789a8dc8cf6b0c7d2eb1867'
7
+ data.tar.gz: 28aab00e8742851f08fee9535b39c913f78f4c7200f2bdbd8788e4d6c8ac8ae6f202a7f3e4675e0e02af2bbc953b6a10114b93987eff5c6ec37e1d6ad0f8ddeb
@@ -11,7 +11,6 @@ module OpenHAB
11
11
  class OSGI
12
12
  include OpenHAB::Log
13
13
 
14
- java_import org.openhab.core.model.script.actions.ScriptExecution
15
14
  java_import org.osgi.framework.FrameworkUtil
16
15
 
17
16
  #
@@ -83,6 +83,7 @@ module OpenHAB
83
83
  def state?
84
84
  !raw_state.is_a?(Types::UnDefType)
85
85
  end
86
+ alias truthy? state?
86
87
 
87
88
  #
88
89
  # Get the item state
@@ -21,7 +21,7 @@ module OpenHAB
21
21
  #
22
22
  #
23
23
  def update_from_file(file, mime_type: nil)
24
- file_data = IO.binread(file)
24
+ file_data = File.binread(file)
25
25
  mime_type ||= Marcel::MimeType.for(Pathname.new(file)) || Marcel::MimeType.for(file_data)
26
26
  update_from_bytes(file_data, mime_type: mime_type)
27
27
  end
@@ -77,7 +77,6 @@ module OpenHAB
77
77
  # Create the run queue based on guards
78
78
  #
79
79
  # @param [Map] inputs rule inputs
80
- #
81
80
  # @return [Queue] <description>
82
81
  #
83
82
  def create_queue(inputs)
@@ -243,6 +242,8 @@ module OpenHAB
243
242
  #
244
243
  # @return [Boolean] True if guards says rule should execute, false otherwise
245
244
  #
245
+ # rubocop:disable Metrics/MethodLength
246
+ # Loggging inflates method length
246
247
  def check_guards(event:)
247
248
  if @guard.should_run? event
248
249
  now = TimeOfDay::TimeOfDay.now
@@ -254,7 +255,10 @@ module OpenHAB
254
255
  logger.trace("Skipped execution of rule '#{name}' because of guard #{@guard}")
255
256
  end
256
257
  false
258
+ rescue StandardError => e
259
+ print_backtrace(e)
257
260
  end
261
+ # rubocop:enable Metrics/MethodLength
258
262
 
259
263
  #
260
264
  # Process the run queue
@@ -31,18 +31,18 @@ module OpenHAB
31
31
  # @return [Trigger] OpenHAB trigger
32
32
  #
33
33
  def changed(*items, to: nil, from: nil, for: nil)
34
- separate_groups(items).each do |item|
34
+ separate_groups(items).map do |item|
35
35
  logger.trace("Creating changed trigger for entity(#{item}), to(#{to}), from(#{from})")
36
36
  # for is a reserved word in ruby, so use local_variable_get :for
37
37
  if (wait_duration = binding.local_variable_get(:for))
38
38
  changed_wait(item, to: to, from: from, duration: wait_duration)
39
39
  else
40
40
  # Place in array and flatten to support multiple to elements or single or nil
41
- [to].flatten.each do |to_state|
42
- [from].flatten.each { |from_state| create_changed_trigger(item, from_state, to_state) }
41
+ [to].flatten.map do |to_state|
42
+ [from].flatten.map { |from_state| create_changed_trigger(item, from_state, to_state) }
43
43
  end
44
44
  end
45
- end
45
+ end.flatten
46
46
  end
47
47
 
48
48
  private
@@ -55,12 +55,13 @@ module OpenHAB
55
55
  # @param [Item State] to OpenHAB Item State item or group needs to change to
56
56
  # @param [Item State] from OpenHAB Item State item or group needs to be coming from
57
57
  #
58
- # @return [Array] Array of current TriggerDelay objects
58
+ # @return [Trigger] OpenHAB trigger
59
59
  #
60
60
  def changed_wait(item, duration:, to: nil, from: nil)
61
61
  trigger = create_changed_trigger(item, nil, nil)
62
62
  logger.trace("Creating Changed Wait Change Trigger for #{item}")
63
63
  @trigger_delays[trigger.id] = TriggerDelay.new(to: to, from: from, duration: duration)
64
+ trigger
64
65
  end
65
66
 
66
67
  #
@@ -22,14 +22,14 @@ module OpenHAB
22
22
  #
23
23
  #
24
24
  def received_command(*items, command: nil, commands: nil)
25
- separate_groups(items).each do |item|
25
+ separate_groups(items).map do |item|
26
26
  logger.trace("Creating received command trigger for item(#{item})"\
27
27
  "command(#{command}) commands(#{commands})")
28
28
 
29
29
  # Combine command and commands, doing union so only a single nil will be in the combined array.
30
30
  combined_commands = combine_commands(command, commands)
31
31
  create_received_trigger(combined_commands, item)
32
- end
32
+ end.flatten
33
33
  end
34
34
 
35
35
  private
@@ -42,7 +42,7 @@ module OpenHAB
42
42
  #
43
43
  #
44
44
  def create_received_trigger(commands, item)
45
- commands.each do |command|
45
+ commands.map do |command|
46
46
  if item.is_a? OpenHAB::DSL::Items::GroupItem::GroupMembers
47
47
  config, trigger = create_group_command_trigger(item)
48
48
  else
@@ -10,9 +10,6 @@ module OpenHAB
10
10
  # Cron type rules
11
11
  #
12
12
  module Triggers
13
- java_import org.openhab.core.automation.util.TriggerBuilder
14
- java_import org.openhab.core.config.core.Configuration
15
-
16
13
  #
17
14
  # Returns a default map for cron expressions that fires every second
18
15
  # This map is usually updated via merge by other methods to refine cron type triggers.
@@ -20,13 +20,13 @@ module OpenHAB
20
20
  # @return [Trigger] Trigger for updated entity
21
21
  #
22
22
  def updated(*items, to: nil)
23
- separate_groups(items).each do |item|
23
+ separate_groups(items).map do |item|
24
24
  logger.trace("Creating updated trigger for item(#{item}) to(#{to})")
25
- [to].flatten.each do |to_state|
25
+ [to].flatten.map do |to_state|
26
26
  trigger, config = create_update_trigger(item, to_state)
27
27
  append_trigger(trigger, config)
28
28
  end
29
- end
29
+ end.flatten
30
30
  end
31
31
 
32
32
  private
@@ -47,7 +47,7 @@ module OpenHAB
47
47
 
48
48
  private
49
49
 
50
- java_import 'org.openhab.core.automation.annotation.RuleAction'
50
+ java_import org.openhab.core.automation.annotation.RuleAction
51
51
 
52
52
  #
53
53
  # Define methods from actions mapped to this thing
@@ -73,7 +73,7 @@ module OpenHAB
73
73
  return error if debug_enabled?
74
74
 
75
75
  if error.respond_to? :backtrace_locations
76
- backtrace = error.backtrace_locations.map(&:to_s).reject { |line| INTERNAL_CALL_REGEX.match? line }
76
+ backtrace = error.backtrace_locations.map(&:to_s).grep_v(INTERNAL_CALL_REGEX)
77
77
  error.set_backtrace(backtrace)
78
78
  elsif error.respond_to? :stack_trace
79
79
  backtrace = error.stack_trace.reject { |line| JAVA_INTERNAL_CALL_REGEX.match? line.to_s }
@@ -5,5 +5,5 @@
5
5
  #
6
6
  module OpenHAB
7
7
  # @return [String] Version of OpenHAB helper libraries
8
- VERSION = '4.8.1'
8
+ VERSION = '4.8.5'
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: 4.8.1
4
+ version: 4.8.5
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-10-30 00:00:00.000000000 Z
11
+ date: 2021-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler