openhab-scripting 5.38.3 → 5.38.4
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/actions/notification.rb +1 -1
- data/lib/openhab/core/items/generic_item.rb +1 -1
- data/lib/openhab/core/items/metadata/namespace_hash.rb +2 -0
- data/lib/openhab/core/items/metadata.rb +3 -0
- data/lib/openhab/core/items/registry.rb +0 -1
- data/lib/openhab/core.rb +2 -1
- data/lib/openhab/dsl/items/builder.rb +1 -22
- data/lib/openhab/dsl/items/tags.rb +34 -0
- data/lib/openhab/dsl/rules/builder.rb +3 -2
- data/lib/openhab/dsl/rules/triggers.rb +4 -0
- data/lib/openhab/dsl/things/builder.rb +1 -1
- data/lib/openhab/dsl/version.rb +1 -1
- data/lib/openhab/dsl.rb +28 -1
- data/lib/openhab/yard/html_helper.rb +7 -7
- data/lib/openhab/yard/markdown_helper.rb +0 -3
- metadata +2 -155
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de1cd952cd575534190d36d824d13a2b39e0eff5411471d2846a343a48830b1e
|
4
|
+
data.tar.gz: 5501e9e018cdf251f42253d887f261d49977e626b1d8cf9f88820a96b89840e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4ae9164c16df30f5c2f66e02663628b6be1310d8940bc56a60c60dd1e26af9db38a1f17f42ef63cf1bc415924cd0fc5e4945a9d03320c79f77bd3136b198d29
|
7
|
+
data.tar.gz: 941cd83990e52ec3fe1f6e9a4728f7d0ea2e0018991d2692ac4eb0398071f1869961a4e49e389385bb0ceb320c7401778c3e0897010ed37aaff1877e322a7257
|
@@ -94,7 +94,7 @@ module OpenHAB
|
|
94
94
|
# @deprecated OH 4.1
|
95
95
|
if Core.version >= Core::V4_2
|
96
96
|
buttons ||= []
|
97
|
-
buttons = buttons.map { |
|
97
|
+
buttons = buttons.map { |button_title, action| "#{button_title}=#{action}" } if buttons.is_a?(Hash)
|
98
98
|
raise ArgumentError, "buttons must contain (0..3) elements." unless (0..3).cover?(buttons.size)
|
99
99
|
|
100
100
|
attachment = "item:#{attachment.name}" if attachment.is_a?(Item) && attachment.image_item?
|
@@ -5,6 +5,9 @@ module OpenHAB
|
|
5
5
|
module Items
|
6
6
|
# Contains classes wrapping interactions with item metadata.
|
7
7
|
module Metadata
|
8
|
+
autoload :Provider, "openhab/core/items/metadata/provider"
|
9
|
+
autoload :NamespaceHash, "openhab/core/items/metadata/namespace_hash"
|
10
|
+
autoload :Hash, "openhab/core/items/metadata/hash"
|
8
11
|
end
|
9
12
|
end
|
10
13
|
end
|
data/lib/openhab/core.rb
CHANGED
@@ -278,27 +278,6 @@ module OpenHAB
|
|
278
278
|
def item_factory
|
279
279
|
@item_factory ||= OpenHAB::OSGi.service("org.openhab.core.items.ItemFactory")
|
280
280
|
end
|
281
|
-
|
282
|
-
#
|
283
|
-
# Convert the given array to an array of strings.
|
284
|
-
# Convert Semantics classes to their simple name.
|
285
|
-
#
|
286
|
-
# @param [String,Symbol,Semantics::Tag] tags A list of strings, symbols, or Semantics classes
|
287
|
-
# @return [Array] An array of strings
|
288
|
-
#
|
289
|
-
# @example
|
290
|
-
# tags = normalize_tags("tag1", Semantics::LivingRoom)
|
291
|
-
#
|
292
|
-
# @!visibility private
|
293
|
-
def normalize_tags(*tags)
|
294
|
-
tags.compact.map do |tag|
|
295
|
-
case tag
|
296
|
-
when String then tag
|
297
|
-
when Symbol, Semantics::SemanticTag then tag.to_s
|
298
|
-
else raise ArgumentError, "`#{tag}` must be a subclass of Semantics::Tag, a `Symbol`, or a `String`."
|
299
|
-
end
|
300
|
-
end
|
301
|
-
end
|
302
281
|
end
|
303
282
|
|
304
283
|
# @param dimension [Symbol, String, nil] The unit dimension for a {NumberItem} (see {ItemBuilder#dimension})
|
@@ -450,7 +429,7 @@ module OpenHAB
|
|
450
429
|
def tag(*tags)
|
451
430
|
return @tags if tags.empty?
|
452
431
|
|
453
|
-
@tags.concat(
|
432
|
+
@tags.concat(Tags.normalize(*tags))
|
454
433
|
end
|
455
434
|
alias_method :tags, :tag
|
456
435
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenHAB
|
4
|
+
module DSL
|
5
|
+
module Items
|
6
|
+
# A helper module for handling tags in OpenHAB DSL.
|
7
|
+
module Tags
|
8
|
+
module_function
|
9
|
+
|
10
|
+
#
|
11
|
+
# Convert the given array to an array of strings.
|
12
|
+
# Convert Semantics classes to their simple name.
|
13
|
+
#
|
14
|
+
# @param [String,Symbol,Semantics::Tag] tags A list of strings, symbols, or Semantics classes
|
15
|
+
# @return [Array] An array of strings
|
16
|
+
#
|
17
|
+
# @example
|
18
|
+
# tags = normalize("tag1", Semantics::LivingRoom)
|
19
|
+
#
|
20
|
+
# @!visibility private
|
21
|
+
def normalize(*tags)
|
22
|
+
tags.compact.map do |tag|
|
23
|
+
case tag
|
24
|
+
when String then tag
|
25
|
+
when Symbol, Semantics::SemanticTag then tag.to_s
|
26
|
+
else raise ArgumentError,
|
27
|
+
"`#{tag}` must be a subclass of Semantics::Tag, a `Symbol`, or a `String`."
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -4,6 +4,7 @@ require "forwardable"
|
|
4
4
|
|
5
5
|
require_relative "property"
|
6
6
|
require_relative "guard"
|
7
|
+
require_relative "triggers"
|
7
8
|
require_relative "rule_triggers"
|
8
9
|
require_relative "terse"
|
9
10
|
|
@@ -2212,7 +2213,7 @@ module OpenHAB
|
|
2212
2213
|
# @return [void]
|
2213
2214
|
def add_tag(tag)
|
2214
2215
|
# have to normalize tags first
|
2215
|
-
@tags = DSL::Items::
|
2216
|
+
@tags = DSL::Items::Tags.normalize(*tags)
|
2216
2217
|
@tags << tag unless @tags.include?(tag)
|
2217
2218
|
end
|
2218
2219
|
|
@@ -2240,7 +2241,7 @@ module OpenHAB
|
|
2240
2241
|
# @return [true,false] true if it should be created, false otherwise
|
2241
2242
|
#
|
2242
2243
|
def create_rule?
|
2243
|
-
@tags = DSL::Items::
|
2244
|
+
@tags = DSL::Items::Tags.normalize(*tags)
|
2244
2245
|
return true if tags.intersect?(%w[Script Scene])
|
2245
2246
|
|
2246
2247
|
if !triggers?
|
@@ -360,7 +360,7 @@ module OpenHAB
|
|
360
360
|
@type = type
|
361
361
|
@label = label
|
362
362
|
@config = config&.transform_keys(&:to_s)
|
363
|
-
@default_tags = Items::
|
363
|
+
@default_tags = Items::Tags.normalize(*Array.wrap(default_tags))
|
364
364
|
@properties = properties&.transform_keys(&:to_s)
|
365
365
|
@description = description
|
366
366
|
@accepted_item_type = accepted_item_type
|
data/lib/openhab/dsl/version.rb
CHANGED
data/lib/openhab/dsl.rb
CHANGED
@@ -10,7 +10,8 @@ require_relative "osgi"
|
|
10
10
|
require_relative "core"
|
11
11
|
|
12
12
|
Dir[File.expand_path("dsl/**/*.rb", __dir__)].each do |f|
|
13
|
-
|
13
|
+
# some files are excluded because they're autoloaded
|
14
|
+
require f unless f.include?("/rules/") || f =~ %r{dsl/(items|sitemaps|things)/builder.rb$}
|
14
15
|
end
|
15
16
|
|
16
17
|
require_relative "core_ext"
|
@@ -27,6 +28,32 @@ module OpenHAB
|
|
27
28
|
# inside of other classes, or include the module.
|
28
29
|
#
|
29
30
|
module DSL
|
31
|
+
module Items
|
32
|
+
autoload :Builder, "openhab/dsl/items/builder"
|
33
|
+
autoload :BaseBuilderDSL, "openhab/dsl/items/builder"
|
34
|
+
autoload :ItemBuilder, "openhab/dsl/items/builder"
|
35
|
+
end
|
36
|
+
|
37
|
+
module Things
|
38
|
+
autoload :Builder, "openhab/dsl/things/builder"
|
39
|
+
end
|
40
|
+
|
41
|
+
module Sitemaps
|
42
|
+
autoload :Builder, "openhab/dsl/sitemaps/builder"
|
43
|
+
autoload :LinkableWidgetBuilder, "openhab/dsl/sitemaps/builder"
|
44
|
+
end
|
45
|
+
|
46
|
+
module Rules
|
47
|
+
# sorted alphabetically
|
48
|
+
autoload :AutomationRule, "openhab/dsl/rules/automation_rule"
|
49
|
+
autoload :Builder, "openhab/dsl/rules/builder"
|
50
|
+
autoload :Guard, "openhab/dsl/rules/guard"
|
51
|
+
autoload :NameInference, "openhab/dsl/rules/name_inference"
|
52
|
+
autoload :Property, "openhab/dsl/rules/property"
|
53
|
+
autoload :RuleTriggers, "openhab/dsl/rules/rule_triggers"
|
54
|
+
autoload :Terse, "openhab/dsl/rules/terse"
|
55
|
+
end
|
56
|
+
|
30
57
|
# include this before Core::Actions so that Core::Action's method_missing
|
31
58
|
# takes priority
|
32
59
|
include Core::EntityLookup
|
@@ -26,6 +26,9 @@ module OpenHAB
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def html_markup_markdown(text)
|
29
|
+
# Remove the "omit from toc" comments
|
30
|
+
text.gsub!(" <!-- omit from toc -->", "")
|
31
|
+
|
29
32
|
result = super
|
30
33
|
|
31
34
|
html = Nokogiri::HTML5.fragment(result)
|
@@ -42,13 +45,10 @@ module OpenHAB
|
|
42
45
|
end
|
43
46
|
end
|
44
47
|
|
45
|
-
#
|
46
|
-
html.css("
|
47
|
-
|
48
|
-
|
49
|
-
id = header.text.strip.downcase.delete(%(.?"')).gsub(/[ ,]+/, "-")
|
50
|
-
header["id"] = id
|
51
|
-
header.prepend_child(%(<a href="##{id}" class="header-anchor">#</a>))
|
48
|
+
# add the "#" mouse-over to header links
|
49
|
+
html.css(Array.new(6) { |i| "h#{i + 1} > a.anchor" }.join(", ")).each do |anchor|
|
50
|
+
anchor["class"] = "header-anchor"
|
51
|
+
anchor.content = "#"
|
52
52
|
end
|
53
53
|
|
54
54
|
html.to_s
|
@@ -55,9 +55,6 @@ module OpenHAB
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
# Remove the "omit from toc" comments
|
59
|
-
result.gsub!(" <!-- omit from toc -->", "")
|
60
|
-
|
61
58
|
# re-link files in docs/*.md. They're written so they work on github without any
|
62
59
|
# processing
|
63
60
|
result.gsub!(%r{\[([A-Za-z0-9,. ]+)\]\(([A-Za-z0-9./-]+)\)}) do |str|
|
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.38.
|
4
|
+
version: 5.38.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian O'Connell
|
@@ -53,160 +53,6 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '1.0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: cucumber
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '9.2'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '9.2'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: cuke_linter
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '1.2'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '1.2'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: gem-release
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '2.2'
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - "~>"
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '2.2'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: httparty
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - "~>"
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0.20'
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0.20'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: persistent_httparty
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - "~>"
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0.1'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - "~>"
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0.1'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: process_exists
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '0.2'
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '0.2'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: rake
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - "~>"
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '13.0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - "~>"
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '13.0'
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: rspec
|
156
|
-
requirement: !ruby/object:Gem::Requirement
|
157
|
-
requirements:
|
158
|
-
- - "~>"
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '3.11'
|
161
|
-
type: :development
|
162
|
-
prerelease: false
|
163
|
-
version_requirements: !ruby/object:Gem::Requirement
|
164
|
-
requirements:
|
165
|
-
- - "~>"
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '3.11'
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
|
-
name: timecop
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
171
|
-
requirements:
|
172
|
-
- - "~>"
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '0.9'
|
175
|
-
type: :development
|
176
|
-
prerelease: false
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
requirements:
|
179
|
-
- - "~>"
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0.9'
|
182
|
-
- !ruby/object:Gem::Dependency
|
183
|
-
name: tty-command
|
184
|
-
requirement: !ruby/object:Gem::Requirement
|
185
|
-
requirements:
|
186
|
-
- - "~>"
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: '0.10'
|
189
|
-
type: :development
|
190
|
-
prerelease: false
|
191
|
-
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
requirements:
|
193
|
-
- - "~>"
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: '0.10'
|
196
|
-
- !ruby/object:Gem::Dependency
|
197
|
-
name: yaml-lint
|
198
|
-
requirement: !ruby/object:Gem::Requirement
|
199
|
-
requirements:
|
200
|
-
- - "~>"
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: '0.0'
|
203
|
-
type: :development
|
204
|
-
prerelease: false
|
205
|
-
version_requirements: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '0.0'
|
210
56
|
email:
|
211
57
|
- broconne+github@gmail.com
|
212
58
|
- cody@cutrer.us
|
@@ -383,6 +229,7 @@ files:
|
|
383
229
|
- lib/openhab/dsl/gems.rb
|
384
230
|
- lib/openhab/dsl/items/builder.rb
|
385
231
|
- lib/openhab/dsl/items/ensure.rb
|
232
|
+
- lib/openhab/dsl/items/tags.rb
|
386
233
|
- lib/openhab/dsl/items/timed_command.rb
|
387
234
|
- lib/openhab/dsl/rules.rb
|
388
235
|
- lib/openhab/dsl/rules/automation_rule.rb
|