openhab-scripting 4.26.4 → 4.27.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16eb15617a1a088c561a6d12e1f6e2ba39459491c9e831933ff235d3177ba225
|
4
|
+
data.tar.gz: 40f21e9e4bb53c04f1bd9e4ee51b834756783218584f05728e26860eb95d491c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac79f5e48d51ec69530c88fe05541e3c6051df205858371a5f450a226d680940058023cab20df0037c148293f60e9b85e20768669c48657ead01ee828097a16a
|
7
|
+
data.tar.gz: e8b218bdd0ecedbb3910c9859bb43e8f06c5372ffc7aa94a6fae0abe7f5defeff8d3a3f6fdee1af9337e8a2684ea2ce194d9e09344f5144650c38b1e91c9f9ea
|
@@ -5,6 +5,7 @@ require 'java'
|
|
5
5
|
require 'set'
|
6
6
|
|
7
7
|
require 'openhab/log/logger'
|
8
|
+
require_relative 'item_proxy'
|
8
9
|
|
9
10
|
# Automation lookup and injection of OpenHab entities
|
10
11
|
|
@@ -91,7 +92,8 @@ module OpenHAB
|
|
91
92
|
def self.lookup_item(name)
|
92
93
|
logger.trace("Looking up item(#{name})")
|
93
94
|
name = name.to_s if name.is_a? Symbol
|
94
|
-
$ir.get(name) # rubocop: disable Style/GlobalVars
|
95
|
+
item = $ir.get(name) # rubocop: disable Style/GlobalVars
|
96
|
+
ItemProxy.new(item) unless item.nil?
|
95
97
|
end
|
96
98
|
end
|
97
99
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'delegate'
|
4
|
+
require 'forwardable'
|
5
|
+
|
6
|
+
module OpenHAB
|
7
|
+
module Core
|
8
|
+
# Class is a proxy to underlying item
|
9
|
+
class ItemProxy < Delegator
|
10
|
+
extend Forwardable
|
11
|
+
def_delegators :__getobj__, :class, :is_a?, :kind_of?, :instance_of?
|
12
|
+
|
13
|
+
#
|
14
|
+
# Set the proxy item (called by super)
|
15
|
+
#
|
16
|
+
def __setobj__(item)
|
17
|
+
# Convert name to java version for faster lookups
|
18
|
+
@item_name = item.name.to_java
|
19
|
+
end
|
20
|
+
|
21
|
+
#
|
22
|
+
# Lookup item from item registry
|
23
|
+
#
|
24
|
+
def __getobj__
|
25
|
+
$ir.get(@item_name) # rubocop:disable Style/GlobalVars
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -33,6 +33,13 @@ module OpenHAB
|
|
33
33
|
def ACCEPTED_DATA_TYPES
|
34
34
|
[org.openhab.core.types.UnDefType.java_class].freeze
|
35
35
|
end
|
36
|
+
|
37
|
+
#
|
38
|
+
# Override to support ItemProxy
|
39
|
+
#
|
40
|
+
def ===(other)
|
41
|
+
other.instance_of?(self)
|
42
|
+
end
|
36
43
|
end
|
37
44
|
# rubocop:enable Naming/MethodName
|
38
45
|
|
@@ -6,11 +6,9 @@ require 'openhab/dsl/types/types'
|
|
6
6
|
require_relative 'item_registry'
|
7
7
|
|
8
8
|
require_relative 'generic_item'
|
9
|
-
|
10
9
|
require_relative 'switch_item'
|
11
10
|
require_relative 'date_time_item'
|
12
11
|
require_relative 'dimmer_item'
|
13
|
-
|
14
12
|
require_relative 'color_item'
|
15
13
|
require_relative 'contact_item'
|
16
14
|
require_relative 'group_item'
|
data/lib/openhab/dsl/states.rb
CHANGED
@@ -48,7 +48,9 @@ module OpenHAB
|
|
48
48
|
# @return [StateStorage] item states
|
49
49
|
#
|
50
50
|
def store_states(*items)
|
51
|
-
items = items.flatten
|
51
|
+
items = items.flatten.map do |item|
|
52
|
+
item.respond_to?(:__getobj__) ? item.__getobj__ : item
|
53
|
+
end
|
52
54
|
states = StateStorage.new(BusEvent.storeStates(*items).to_h)
|
53
55
|
if block_given?
|
54
56
|
yield
|
data/lib/openhab/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openhab-scripting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.27.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian O'Connell
|
@@ -47,6 +47,7 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- lib/openhab.rb
|
49
49
|
- lib/openhab/core/entity_lookup.rb
|
50
|
+
- lib/openhab/core/item_proxy.rb
|
50
51
|
- lib/openhab/core/load_path.rb
|
51
52
|
- lib/openhab/core/openhab_setup.rb
|
52
53
|
- lib/openhab/core/osgi.rb
|