openhab-scripting 2.23.3 → 2.24.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/dsl/items/datetime_item.rb +5 -4
- data/lib/openhab/dsl/items/item_delegate.rb +32 -1
- data/lib/openhab/dsl/items/number_item.rb +3 -5
- data/lib/openhab/dsl/items/rollershutter_item.rb +4 -4
- data/lib/openhab/dsl/items/string_item.rb +4 -4
- data/lib/openhab/dsl/monkey_patch/items/items.rb +9 -0
- data/lib/openhab/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ce40856625691eb49a22ee19ac02bd030dba8cdf6e62f86736f9974cf7e2162
|
4
|
+
data.tar.gz: 98e2226b8d4286f16a7f3b4ae40ef45246489df9464d1b3a6f5f7eea37ed93cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3e2329d4a8b1ef612348f135a827e0011ffa0fa6b2958d2d333def5777db2ed76bd91e3cd0310c2075fe0b941b6936482a21c3ef20cca4a14283780629704b8
|
7
|
+
data.tar.gz: d809054def4036f6b42faf9aa069a9f201fd0fd01120df1ebb32df91a5b7069a8073237153b1f0ac2ced5477e47a24547496fab48b317d57fbb100dc286eb59f
|
@@ -16,10 +16,11 @@ module OpenHAB
|
|
16
16
|
#
|
17
17
|
class DateTimeItem
|
18
18
|
extend Forwardable
|
19
|
+
extend OpenHAB::DSL::Items::ItemDelegate
|
20
|
+
|
19
21
|
include Comparable
|
20
|
-
include OpenHAB::DSL::Items::ItemDelegate
|
21
22
|
|
22
|
-
|
23
|
+
def_item_delegator :@datetime_item
|
23
24
|
|
24
25
|
#
|
25
26
|
# Create a new DateTimeItem
|
@@ -29,8 +30,8 @@ module OpenHAB
|
|
29
30
|
#
|
30
31
|
def initialize(datetime_item)
|
31
32
|
@datetime_item = datetime_item
|
32
|
-
|
33
|
-
|
33
|
+
item_missing_delegate { @datetime_item }
|
34
|
+
item_missing_delegate { to_dt }
|
34
35
|
end
|
35
36
|
|
36
37
|
#
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'java'
|
4
4
|
require 'openhab/log/logger'
|
5
|
+
require 'forwardable'
|
5
6
|
|
6
7
|
module OpenHAB
|
7
8
|
module DSL
|
@@ -12,6 +13,36 @@ module OpenHAB
|
|
12
13
|
module ItemDelegate
|
13
14
|
include OpenHAB::Log
|
14
15
|
|
16
|
+
# @return [Array<Symbol>] Array of methods that by default will be forwarded to an OpenHAB Item.
|
17
|
+
DEFAULT_DELEGATION_METHODS = %i[to_s groups].freeze
|
18
|
+
private_constant :DEFAULT_DELEGATION_METHODS
|
19
|
+
|
20
|
+
#
|
21
|
+
# Extends calling object with DSL and helper methods
|
22
|
+
#
|
23
|
+
# @param [Object] base Object to decorate with DSL and helper methods
|
24
|
+
#
|
25
|
+
#
|
26
|
+
def self.extended(base)
|
27
|
+
base.extend Forwardable
|
28
|
+
base.include OpenHAB::DSL::Items::ItemDelegate
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# Delegate a set of methods to the supplied delegator
|
33
|
+
#
|
34
|
+
# @param [Java::OrgOpenhabCoreItems::GenericItem] item to delegate methods to
|
35
|
+
# @param [Symbol] methods to delegate, if not supplied default methods are used
|
36
|
+
#
|
37
|
+
#
|
38
|
+
def def_item_delegator(item, *methods)
|
39
|
+
methods = DEFAULT_DELEGATION_METHODS if methods.size.zero?
|
40
|
+
methods.each do |method|
|
41
|
+
logger.trace("Creating delegate for (#{method}) to #{item}) for #{self.class}")
|
42
|
+
def_delegator item, method
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
15
46
|
#
|
16
47
|
# Delegates methods to the object returned from the supplied block if
|
17
48
|
# they don't exist in the object this is included in. If the supplied block returns nil, no delegation occurs
|
@@ -22,7 +53,7 @@ module OpenHAB
|
|
22
53
|
# @param [Proc] &delegate delgegate block
|
23
54
|
#
|
24
55
|
#
|
25
|
-
def
|
56
|
+
def item_missing_delegate(&delegate)
|
26
57
|
@delegates ||= []
|
27
58
|
@delegates << delegate
|
28
59
|
end
|
@@ -16,11 +16,9 @@ module OpenHAB
|
|
16
16
|
# Disabled because this class has a single responsibility, there does not appear a logical
|
17
17
|
# way of breaking it up into multiple classes
|
18
18
|
class NumberItem < Numeric
|
19
|
-
extend
|
19
|
+
extend OpenHAB::DSL::Items::ItemDelegate
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
def_delegator :@number_item, :to_s
|
21
|
+
def_item_delegator :@number_item
|
24
22
|
|
25
23
|
java_import org.openhab.core.library.types.DecimalType
|
26
24
|
java_import org.openhab.core.library.types.QuantityType
|
@@ -34,7 +32,7 @@ module OpenHAB
|
|
34
32
|
#
|
35
33
|
def initialize(number_item)
|
36
34
|
@number_item = number_item
|
37
|
-
|
35
|
+
item_missing_delegate { @number_item }
|
38
36
|
super()
|
39
37
|
end
|
40
38
|
|
@@ -14,10 +14,10 @@ module OpenHAB
|
|
14
14
|
class RollershutterItem < Numeric
|
15
15
|
extend Forwardable
|
16
16
|
extend OpenHAB::DSL::Items::ItemCommand
|
17
|
-
|
17
|
+
extend OpenHAB::DSL::Items::ItemDelegate
|
18
18
|
include Comparable
|
19
19
|
|
20
|
-
|
20
|
+
def_item_delegator :@rollershutter_item
|
21
21
|
|
22
22
|
java_import Java::OrgOpenhabCoreLibraryTypes::PercentType
|
23
23
|
java_import Java::OrgOpenhabCoreLibraryTypes::UpDownType
|
@@ -37,8 +37,8 @@ module OpenHAB
|
|
37
37
|
logger.trace("Wrapping #{rollershutter_item}")
|
38
38
|
@rollershutter_item = rollershutter_item
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
item_missing_delegate { @rollershutter_item }
|
41
|
+
item_missing_delegate { position }
|
42
42
|
|
43
43
|
super()
|
44
44
|
end
|
@@ -15,13 +15,13 @@ module OpenHAB
|
|
15
15
|
extend Forwardable
|
16
16
|
|
17
17
|
include Comparable
|
18
|
-
|
18
|
+
extend OpenHAB::DSL::Items::ItemDelegate
|
19
19
|
|
20
20
|
# @return [Regex] Regular expression matching blank strings
|
21
21
|
BLANK_RE = /\A[[:space:]]*\z/.freeze
|
22
22
|
private_constant :BLANK_RE
|
23
23
|
|
24
|
-
|
24
|
+
def_item_delegator :@string_item
|
25
25
|
|
26
26
|
#
|
27
27
|
# Create a new StringItem
|
@@ -31,8 +31,8 @@ module OpenHAB
|
|
31
31
|
def initialize(string_item)
|
32
32
|
@string_item = string_item
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
item_missing_delegate { @string_item }
|
35
|
+
item_missing_delegate { @string_item.state&.to_full_string&.to_s }
|
36
36
|
|
37
37
|
super()
|
38
38
|
end
|
@@ -115,6 +115,15 @@ module OpenHAB
|
|
115
115
|
def inspect
|
116
116
|
toString
|
117
117
|
end
|
118
|
+
|
119
|
+
#
|
120
|
+
# Return all groups that this item is part of
|
121
|
+
#
|
122
|
+
# @return [Array<Group>] All groups that this item is part of
|
123
|
+
#
|
124
|
+
def groups
|
125
|
+
group_names.map { |name| OpenHAB::DSL::Groups.groups[name] }
|
126
|
+
end
|
118
127
|
end
|
119
128
|
|
120
129
|
java_import Java::OrgOpenhabCoreItems::GenericItem
|
data/lib/openhab/version.rb
CHANGED
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.
|
4
|
+
version: 2.24.0
|
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-
|
11
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|