openhab-scripting 4.26.4 → 4.27.0
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:
|
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
|