openhab-scripting 4.13.5 → 4.14.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 +4 -4
- data/lib/openhab/core/script_handling.rb +50 -13
- data/lib/openhab/dsl/rules/rule.rb +1 -0
- data/lib/openhab/dsl/timers.rb +1 -0
- data/lib/openhab/version.rb +1 -1
- data/lib/openhab.rb +4 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e18ecb6c7855be5621a529eb7a7c35bfdf7afe8ec134a375e4ef0458f77c4edd
|
4
|
+
data.tar.gz: 862215cf6988193ec43bbd9a79e8ff16d6a50c91d832346f2d4eb180ba751129
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21a39ca9ec68afb322cd63fc7c76bd2e8eec26bb8076f0160b3f959465d08060f40516bc9a866251f0c6c1e29a8d2c1b5339645ed6e6726bcf054768e7f262cc
|
7
|
+
data.tar.gz: 20af639fd0bdf052e34a6eb73b94e0de96f1cdf31584bd2475a54d23d404354444536b7a5ebda83ea51ae0799486ca91d42e96eafb7e9ad260db487aeced166a
|
@@ -1,39 +1,76 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'openhab/log/logger'
|
4
|
-
require 'openhab/dsl/rules/rule'
|
5
|
-
require 'openhab/dsl/timers'
|
6
4
|
|
7
5
|
# OpenHAB main module
|
8
6
|
module OpenHAB
|
9
7
|
module Core
|
10
8
|
#
|
11
|
-
#
|
9
|
+
# Provide callback mechanisms for script handling
|
12
10
|
#
|
13
11
|
module ScriptHandling
|
12
|
+
module_function
|
13
|
+
|
14
|
+
# Add a callback to be run when the script has been fully loaded
|
15
|
+
def script_loaded(&block)
|
16
|
+
ScriptHandlingCallbacks.script_loaded_hooks << block
|
17
|
+
end
|
18
|
+
|
19
|
+
# Add a callback to be run when the script is unloaded
|
20
|
+
def script_unloaded(&block)
|
21
|
+
ScriptHandlingCallbacks.script_unloaded_hooks << block
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Manages script loading and unloading
|
27
|
+
#
|
28
|
+
module ScriptHandlingCallbacks
|
14
29
|
include OpenHAB::Log
|
15
30
|
|
31
|
+
class << self
|
32
|
+
#
|
33
|
+
# Return script_loaded_hooks
|
34
|
+
#
|
35
|
+
# @!visibility private
|
36
|
+
def script_loaded_hooks
|
37
|
+
@script_loaded_hooks ||= []
|
38
|
+
end
|
39
|
+
|
40
|
+
#
|
41
|
+
# Return script_unloaded_hooks
|
42
|
+
#
|
43
|
+
# @!visibility private
|
44
|
+
def script_unloaded_hooks
|
45
|
+
@script_unloaded_hooks ||= []
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
16
49
|
#
|
17
50
|
# Executed when OpenHAB unloads a script file
|
18
51
|
#
|
19
|
-
#
|
20
|
-
# method name
|
21
|
-
def scriptUnloaded
|
52
|
+
# @!visibility private
|
53
|
+
def scriptUnloaded # rubocop:disable Naming/MethodName method name dictated by OpenHAB
|
22
54
|
logger.trace('Script unloaded')
|
23
|
-
|
24
|
-
|
55
|
+
ScriptHandlingCallbacks.script_unloaded_hooks.each do |hook|
|
56
|
+
hook.call
|
57
|
+
rescue StandardError => e
|
58
|
+
logger.error("Failed to call script_unloaded hook #{hook}: #{e}")
|
59
|
+
end
|
25
60
|
end
|
26
|
-
# rubocop:enable Naming/MethodName
|
27
61
|
|
28
62
|
#
|
29
63
|
# Executed when OpenHAB loads a script file
|
30
64
|
#
|
31
|
-
#
|
32
|
-
# method name
|
33
|
-
def scriptLoaded(filename)
|
65
|
+
# @!visibility private
|
66
|
+
def scriptLoaded(filename) # rubocop:disable Naming/MethodName method name dictated by OpenHAB
|
34
67
|
logger.trace("Script loaded: #{filename}")
|
68
|
+
ScriptHandlingCallbacks.script_loaded_hooks.each do |hook|
|
69
|
+
hook.call
|
70
|
+
rescue StandardError => e
|
71
|
+
logger.error("Failed to call script_loaded hook #{hook}: #{e}")
|
72
|
+
end
|
35
73
|
end
|
36
|
-
# rubocop:enable Naming/MethodName
|
37
74
|
end
|
38
75
|
end
|
39
76
|
end
|
data/lib/openhab/dsl/timers.rb
CHANGED
data/lib/openhab/version.rb
CHANGED
data/lib/openhab.rb
CHANGED
@@ -20,20 +20,23 @@ module OpenHAB
|
|
20
20
|
#
|
21
21
|
#
|
22
22
|
# Number of extensions and includes requires more lines
|
23
|
+
# rubocop: disable Metrics/MethodLength
|
23
24
|
def self.extended(base)
|
24
25
|
OpenHAB::Core.wait_till_openhab_ready
|
25
26
|
base.extend Log
|
27
|
+
base.extend OpenHAB::Core::ScriptHandling
|
26
28
|
base.extend OpenHAB::Core::EntityLookup
|
27
29
|
base.extend OpenHAB::DSL
|
28
30
|
base.extend OpenHAB::DSL::Between
|
29
31
|
|
32
|
+
base.send :include, OpenHAB::Core::ScriptHandlingCallbacks
|
30
33
|
base.send :include, OpenHAB::DSL::Items
|
31
34
|
base.send :include, OpenHAB::DSL::Types
|
32
|
-
base.send :include, OpenHAB::Core::ScriptHandling
|
33
35
|
logger.info "OpenHAB JRuby Scripting Library Version #{OpenHAB::VERSION} Loaded"
|
34
36
|
|
35
37
|
OpenHAB::Core.add_rubylib_to_load_path
|
36
38
|
end
|
39
|
+
# rubocop: enable Metrics/MethodLength
|
37
40
|
end
|
38
41
|
|
39
42
|
# Extend caller with OpenHAB methods
|