openhab-scripting 5.14.0 → 5.15.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: 11409728d3f0ecb384da9099355fea4728020aa1de1d494d3085dddea518e16c
|
4
|
+
data.tar.gz: d4daa321f0b779b0c9f47ccc405cdafd3a71f55666e173cb29315a7f948b2029
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8eee772f02cf086af4db419ecaa5752b21393302533f6fea628a6e9bc50d7e986b1815e03c71de7acba63a13088f46d3e73e96d416a1869a7e2b9fe627764ea
|
7
|
+
data.tar.gz: 4ebdb8fb5d81c4429188163e4ced5aabf2ee8a33797b540a32e0e81024a67ac7143728b7679181ca26a4856f8e7e6ed291b5f4bb9427c1df2a744eb6fcb75dd1
|
@@ -112,8 +112,30 @@ module OpenHAB
|
|
112
112
|
# end
|
113
113
|
# end
|
114
114
|
#
|
115
|
+
# @example
|
116
|
+
# def add_tv(builder, tv)
|
117
|
+
# builder.frame label: tv.location.label do
|
118
|
+
# builder.switch item: tv.points(Semantics::Switch), label: "Power"
|
119
|
+
# end
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# sitemaps.build do |builder|
|
123
|
+
# builder.sitemap "tvs", label: "TVs" do
|
124
|
+
# items.equipments(Semantics::TV).each do |tv|
|
125
|
+
# add_tv(builder, tv)
|
126
|
+
# end
|
127
|
+
# end
|
128
|
+
# end
|
129
|
+
#
|
115
130
|
def build(update: true, &block)
|
116
|
-
|
131
|
+
builder_proxy = SimpleDelegator.new(nil) if block.arity == 1
|
132
|
+
builder = DSL::Sitemaps::Builder.new(self, builder_proxy, update: update)
|
133
|
+
if block.arity == 1
|
134
|
+
builder_proxy.__setobj__(builder)
|
135
|
+
yield builder_proxy
|
136
|
+
else
|
137
|
+
builder.instance_eval(&block)
|
138
|
+
end
|
117
139
|
end
|
118
140
|
|
119
141
|
# For use in specs
|
@@ -12,8 +12,9 @@ module OpenHAB
|
|
12
12
|
# Base sitemap builder DSL
|
13
13
|
class Builder
|
14
14
|
# @!visibility private
|
15
|
-
def initialize(provider, update:)
|
15
|
+
def initialize(provider, builder_proxy, update:)
|
16
16
|
@provider = provider
|
17
|
+
@builder_proxy = builder_proxy
|
17
18
|
@update = update
|
18
19
|
end
|
19
20
|
|
@@ -23,8 +24,7 @@ module OpenHAB
|
|
23
24
|
# @return [SitemapBuilder]
|
24
25
|
# @!visibility public
|
25
26
|
def sitemap(name, label: nil, icon: nil, &block)
|
26
|
-
sitemap = SitemapBuilder.new(name, label: label, icon: icon)
|
27
|
-
sitemap.instance_eval_with_dummy_items(&block) if block
|
27
|
+
sitemap = SitemapBuilder.new(name, @builder_proxy, label: label, icon: icon, &block)
|
28
28
|
sitemap = sitemap.build
|
29
29
|
if @update && @provider.get(sitemap.uid)
|
30
30
|
@provider.update(sitemap)
|
@@ -106,6 +106,7 @@ module OpenHAB
|
|
106
106
|
# One or more visibility rules (see {#visibility})
|
107
107
|
# @!visibility private
|
108
108
|
def initialize(type,
|
109
|
+
builder_proxy,
|
109
110
|
item: nil,
|
110
111
|
label: nil,
|
111
112
|
icon: nil,
|
@@ -113,13 +114,15 @@ module OpenHAB
|
|
113
114
|
label_color: nil,
|
114
115
|
value_color: nil,
|
115
116
|
icon_color: nil,
|
116
|
-
visibility: nil
|
117
|
+
visibility: nil,
|
118
|
+
&block)
|
117
119
|
unless SitemapBuilder.factory.respond_to?("create_#{type}")
|
118
120
|
raise ArgumentError,
|
119
121
|
"#{type} is not a valid widget type"
|
120
122
|
end
|
121
123
|
|
122
124
|
@type = type
|
125
|
+
@builder_proxy = builder_proxy
|
123
126
|
@item = item
|
124
127
|
@label = label
|
125
128
|
@icon = icon
|
@@ -133,6 +136,20 @@ module OpenHAB
|
|
133
136
|
self.value_color(value_color) if value_color
|
134
137
|
self.icon_color(icon_color) if icon_color
|
135
138
|
self.visibility(*visibility) if visibility
|
139
|
+
|
140
|
+
return unless block
|
141
|
+
|
142
|
+
@builder_proxy ||= SimpleDelegator.new(nil) if block.arity == 1
|
143
|
+
|
144
|
+
if @builder_proxy
|
145
|
+
old_obj = @builder_proxy.__getobj__
|
146
|
+
@builder_proxy.__setobj__(self)
|
147
|
+
yield @builder_proxy
|
148
|
+
else
|
149
|
+
instance_eval_with_dummy_items(&block)
|
150
|
+
end
|
151
|
+
ensure
|
152
|
+
@builder_proxy&.__setobj__(old_obj)
|
136
153
|
end
|
137
154
|
|
138
155
|
# Adds one or more new rules for setting the label color
|
@@ -272,8 +289,8 @@ module OpenHAB
|
|
272
289
|
# @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, mappings: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
|
273
290
|
# @param mappings [Hash, Array, nil] Mappings from command to label (see {SwitchBuilder#mappings})
|
274
291
|
# @!visibility private
|
275
|
-
def initialize(type, mappings: nil, **kwargs)
|
276
|
-
super(type, **kwargs)
|
292
|
+
def initialize(type, builder_proxy, mappings: nil, **kwargs, &block)
|
293
|
+
super(type, builder_proxy, **kwargs, &block)
|
277
294
|
|
278
295
|
@mappings = mappings
|
279
296
|
end
|
@@ -313,8 +330,8 @@ module OpenHAB
|
|
313
330
|
# @param range [Range, nil] Allowed range of the value (see {SetpointBuilder#range})
|
314
331
|
# @param step [Numeric,nil] How far the value will change with each button press (see {SetpointBuilder#step})
|
315
332
|
# @!visibility private
|
316
|
-
def initialize(type, range: nil, step: nil, **kwargs)
|
317
|
-
super(type, **kwargs)
|
333
|
+
def initialize(type, builder_proxy, range: nil, step: nil, **kwargs, &block)
|
334
|
+
super(type, builder_proxy, **kwargs, &block)
|
318
335
|
|
319
336
|
@range = range
|
320
337
|
@step = step
|
@@ -349,8 +366,8 @@ module OpenHAB
|
|
349
366
|
# @param frequency [Numeric, nil]
|
350
367
|
# How often to send requests (in seconds) (see {SliderBuilder#frequency})
|
351
368
|
# @!visibility private
|
352
|
-
def initialize(type, switch: nil, frequency: nil, **kwargs)
|
353
|
-
super(type, **kwargs)
|
369
|
+
def initialize(type, builder_proxy, switch: nil, frequency: nil, **kwargs, &block)
|
370
|
+
super(type, builder_proxy, **kwargs, &block)
|
354
371
|
|
355
372
|
@switch = switch
|
356
373
|
@frequency = frequency
|
@@ -388,8 +405,8 @@ module OpenHAB
|
|
388
405
|
# @param [String, nil] url (see {VideoBuilder#url})
|
389
406
|
# @param [:mjpeg, :hls, nil] encoding (see {VideoBuilder#encoding})
|
390
407
|
# @!visibility private
|
391
|
-
def initialize(type, url: nil, encoding: nil, **kwargs)
|
392
|
-
super(type, **kwargs)
|
408
|
+
def initialize(type, builder_proxy, url: nil, encoding: nil, **kwargs, &block)
|
409
|
+
super(type, builder_proxy, **kwargs, &block)
|
393
410
|
|
394
411
|
@url = url
|
395
412
|
self.encoding = encoding
|
@@ -457,14 +474,16 @@ module OpenHAB
|
|
457
474
|
# Formatting string for values on the y axis (see {ChartBuilder#y_axis_pattern})
|
458
475
|
# @!visibility private
|
459
476
|
def initialize(type,
|
477
|
+
builder_proxy,
|
460
478
|
service: nil,
|
461
479
|
refresh: nil,
|
462
480
|
period: nil,
|
463
481
|
legend: nil,
|
464
482
|
group: nil,
|
465
483
|
y_axis_pattern: nil,
|
466
|
-
**kwargs
|
467
|
-
|
484
|
+
**kwargs,
|
485
|
+
&block)
|
486
|
+
super(type, builder_proxy, **kwargs, &block)
|
468
487
|
|
469
488
|
@service = service
|
470
489
|
self.refresh = refresh
|
@@ -514,8 +533,8 @@ module OpenHAB
|
|
514
533
|
# @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, height: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
|
515
534
|
# @param height [Integer] The number of element rows to fill (see {DefaultBuilder#height})
|
516
535
|
# @!visibility private
|
517
|
-
def initialize(type, height: nil, **kwargs)
|
518
|
-
super(type, **kwargs)
|
536
|
+
def initialize(type, builder_proxy, height: nil, **kwargs, &block)
|
537
|
+
super(type, builder_proxy, **kwargs, &block)
|
519
538
|
|
520
539
|
@height = height
|
521
540
|
end
|
@@ -539,8 +558,8 @@ module OpenHAB
|
|
539
558
|
# @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, url: nil, height: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
|
540
559
|
# @param url [String, nil] (see {WebviewBuilder#url})
|
541
560
|
# @!visibility private
|
542
|
-
def initialize(type, url: nil, **kwargs)
|
543
|
-
super(type, **kwargs)
|
561
|
+
def initialize(type, builder_proxy, url: nil, **kwargs, &block)
|
562
|
+
super(type, builder_proxy, **kwargs, &block)
|
544
563
|
|
545
564
|
@url = url
|
546
565
|
end
|
@@ -565,8 +584,8 @@ module OpenHAB
|
|
565
584
|
# @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, frequency: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
|
566
585
|
# @param frequency [Numeric, nil] How often to send requests (see {ColorpickerBuilder#frequency})
|
567
586
|
# @!visibility private
|
568
|
-
def initialize(type, frequency: nil, **kwargs)
|
569
|
-
super(type, **kwargs)
|
587
|
+
def initialize(type, builder_proxy, frequency: nil, **kwargs, &block)
|
588
|
+
super(type, builder_proxy, **kwargs, &block)
|
570
589
|
|
571
590
|
@frequency = frequency
|
572
591
|
end
|
@@ -601,8 +620,8 @@ module OpenHAB
|
|
601
620
|
# @param [:text, :number, :date, :time, :datetime, nil] hint
|
602
621
|
# Gives a hint to the user interface to use a widget adapted to a specific use (see {InputBuilder#hint})
|
603
622
|
# @!visibility private
|
604
|
-
def initialize(type, hint: nil, **kwargs)
|
605
|
-
super(type, **kwargs)
|
623
|
+
def initialize(type, builder_proxy, hint: nil, **kwargs, &block)
|
624
|
+
super(type, builder_proxy, **kwargs, &block)
|
606
625
|
|
607
626
|
self.hint = hint
|
608
627
|
end
|
@@ -658,10 +677,10 @@ module OpenHAB
|
|
658
677
|
#
|
659
678
|
# @see https://www.openhab.org/docs/ui/sitemaps.html#element-type-buttongrid
|
660
679
|
# @!visibility private
|
661
|
-
def initialize(type, buttons: [], **kwargs)
|
662
|
-
super(type, **kwargs)
|
663
|
-
buttons.each { |button| validate_button(button) }
|
680
|
+
def initialize(type, builder_proxy, buttons: [], **kwargs, &block)
|
664
681
|
@buttons = buttons
|
682
|
+
super(type, builder_proxy, **kwargs, &block)
|
683
|
+
buttons.each { |button| validate_button(button) }
|
665
684
|
end
|
666
685
|
|
667
686
|
#
|
@@ -998,9 +1017,10 @@ module OpenHAB
|
|
998
1017
|
class_eval <<~RUBY, __FILE__, __LINE__ + 1
|
999
1018
|
def #{method}(*args, **kwargs, &block) # def frame(*args, **kwargs, &block)
|
1000
1019
|
widget = #{method.capitalize}Builder.new(#{method.inspect}, # widget = FrameBuilder.new(:frame,
|
1020
|
+
@builder_proxy, # @builder_proxy,
|
1001
1021
|
*args, # *args,
|
1002
|
-
**kwargs
|
1003
|
-
|
1022
|
+
**kwargs, # **kwargs,
|
1023
|
+
&block) # &block)
|
1004
1024
|
children << widget # children << widget
|
1005
1025
|
widget # widget
|
1006
1026
|
end # end
|
@@ -1011,9 +1031,9 @@ module OpenHAB
|
|
1011
1031
|
# @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
|
1012
1032
|
# @!visibility private
|
1013
1033
|
def initialize(*, **)
|
1014
|
-
super
|
1015
|
-
|
1016
1034
|
@children = []
|
1035
|
+
|
1036
|
+
super
|
1017
1037
|
end
|
1018
1038
|
|
1019
1039
|
# @!visibility private
|
@@ -1062,8 +1082,8 @@ module OpenHAB
|
|
1062
1082
|
# @param url [String, nil] The URL for the image (see {ImageBuilder#url})
|
1063
1083
|
# @param refresh [Numeric, nil] How often to refresh the image (see {ImageBuilder#refresh})
|
1064
1084
|
# @!visibility private
|
1065
|
-
def initialize(type, url: nil, refresh: nil, **kwargs)
|
1066
|
-
super(type, **kwargs)
|
1085
|
+
def initialize(type, builder_proxy, url: nil, refresh: nil, **kwargs, &block)
|
1086
|
+
super(type, builder_proxy, **kwargs, &block)
|
1067
1087
|
|
1068
1088
|
@url = url
|
1069
1089
|
@refresh = refresh
|
@@ -1111,8 +1131,8 @@ module OpenHAB
|
|
1111
1131
|
# @param label [String, nil]
|
1112
1132
|
# @param icon [String, nil]
|
1113
1133
|
# @!visibility private
|
1114
|
-
def initialize(name, label: nil, icon: nil)
|
1115
|
-
super(:sitemap, label: label, icon: icon)
|
1134
|
+
def initialize(name, builder_proxy, label: nil, icon: nil)
|
1135
|
+
super(:sitemap, builder_proxy, label: label, icon: icon)
|
1116
1136
|
|
1117
1137
|
@name = name
|
1118
1138
|
end
|
data/lib/openhab/dsl/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: 5.
|
4
|
+
version: 5.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian O'Connell
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-01-
|
13
|
+
date: 2024-01-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|