openhab-scripting 5.38.2 → 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/console/irb.rb +2 -2
- data/lib/openhab/core/actions/notification.rb +1 -1
- data/lib/openhab/core/events/abstract_event.rb +27 -2
- data/lib/openhab/core/items/generic_item.rb +1 -1
- data/lib/openhab/core/items/image_item.rb +0 -1
- data/lib/openhab/core/items/item.rb +2 -2
- 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/things/profile_callback.rb +11 -4
- data/lib/openhab/core/value_cache.rb +1 -1
- data/lib/openhab/core.rb +2 -1
- data/lib/openhab/core_ext/java/list.rb +42 -42
- 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
|
data/lib/openhab/console/irb.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require "openhab/console/stdio"
|
4
4
|
|
5
|
-
gem "irb", "~> 1.15"
|
6
|
-
|
7
5
|
require "irb"
|
8
6
|
|
7
|
+
raise "IRB Version 1.14 or later is required." unless Gem::Version.new(IRB::VERSION) >= Gem::Version.new("1.14")
|
8
|
+
|
9
9
|
module OpenHAB
|
10
10
|
# @!visibility private
|
11
11
|
module Console
|
@@ -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?
|
@@ -8,10 +8,30 @@ module OpenHAB
|
|
8
8
|
# Add attachments event data.
|
9
9
|
class AbstractEvent
|
10
10
|
# @return [Object]
|
11
|
-
|
11
|
+
attr_reader :attachment
|
12
12
|
|
13
13
|
# @return [Hash]
|
14
|
-
|
14
|
+
attr_reader :inputs
|
15
|
+
|
16
|
+
# @!visibility private
|
17
|
+
def attachment=(value)
|
18
|
+
# Disable "instance vars on non-persistent Java type"
|
19
|
+
original_verbose = $VERBOSE
|
20
|
+
$VERBOSE = nil
|
21
|
+
@attachment = value
|
22
|
+
ensure
|
23
|
+
$VERBOSE = original_verbose
|
24
|
+
end
|
25
|
+
|
26
|
+
# @!visibility private
|
27
|
+
def inputs=(value)
|
28
|
+
# Disable "instance vars on non-persistent Java type"
|
29
|
+
original_verbose = $VERBOSE
|
30
|
+
$VERBOSE = nil
|
31
|
+
@inputs = value
|
32
|
+
ensure
|
33
|
+
$VERBOSE = original_verbose
|
34
|
+
end
|
15
35
|
|
16
36
|
# @!attribute [r] source
|
17
37
|
# @return [String] The component that sent the event.
|
@@ -24,7 +44,12 @@ module OpenHAB
|
|
24
44
|
#
|
25
45
|
def payload
|
26
46
|
require "json"
|
47
|
+
# Disable "instance vars on non-persistent Java type"
|
48
|
+
original_verbose = $VERBOSE
|
49
|
+
$VERBOSE = nil
|
27
50
|
@payload ||= JSON.parse(get_payload, symbolize_names: true) unless get_payload.empty?
|
51
|
+
ensure
|
52
|
+
$VERBOSE = original_verbose
|
28
53
|
end
|
29
54
|
|
30
55
|
# @return [String]
|
@@ -25,10 +25,10 @@ module OpenHAB
|
|
25
25
|
OpenHAB::OSGi.service("org.openhab.core.io.rest.sse.internal.SseItemStatesEventBuilder")&.tap do |builder|
|
26
26
|
m = builder.class.java_class.get_declared_method("getDisplayState", Item, java.util.Locale)
|
27
27
|
m.accessible = true
|
28
|
-
builder.instance_variable_set(:@getDisplayState, m)
|
29
28
|
# Disable "singleton on non-persistent Java type"
|
30
29
|
original_verbose = $VERBOSE
|
31
30
|
$VERBOSE = nil
|
31
|
+
builder.instance_variable_set(:@getDisplayState, m)
|
32
32
|
def builder.get_display_state(item)
|
33
33
|
@getDisplayState.invoke(self, item, nil)
|
34
34
|
end
|
@@ -390,7 +390,7 @@ module OpenHAB
|
|
390
390
|
# # Item1's metadata after: {"namespace2"=>["value", {"config1"=>"foo", "config2"=>"bar"}], "namespace"=>["value", {"config1"=>"foo", "config2"=>"bar"}]}
|
391
391
|
#
|
392
392
|
def metadata
|
393
|
-
|
393
|
+
Metadata::NamespaceHash.new(name)
|
394
394
|
end
|
395
395
|
# rubocop:enable Layout/LineLength
|
396
396
|
|
@@ -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
|
@@ -8,16 +8,23 @@ module OpenHAB
|
|
8
8
|
# and channels.
|
9
9
|
#
|
10
10
|
module ProfileCallback
|
11
|
+
class << self
|
12
|
+
# @!visibility private
|
13
|
+
def dummy_channel_item(accepted_item_type)
|
14
|
+
@dummy_channel_items[accepted_item_type]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
@dummy_channel_items = Hash.new do |hash, key|
|
18
|
+
hash[key] = DSL::Items::ItemBuilder.item_factory.create_item(key, "")
|
19
|
+
end
|
20
|
+
|
11
21
|
#
|
12
22
|
# Forward the given command to the respective thing handler.
|
13
23
|
#
|
14
24
|
# @param [Command] command
|
15
25
|
#
|
16
26
|
def handle_command(command)
|
17
|
-
|
18
|
-
@dummy_channel_item = DSL::Items::ItemBuilder.item_factory.create_item(link.channel.accepted_item_type, "")
|
19
|
-
end
|
20
|
-
command = @dummy_channel_item.format_command(command) if @dummy_channel_item
|
27
|
+
command = ProfileCallback.dummy_channel_item(link.channel.accepted_item_type)&.format_command(command)
|
21
28
|
super
|
22
29
|
end
|
23
30
|
|
@@ -175,7 +175,7 @@ module OpenHAB
|
|
175
175
|
|
176
176
|
# @see https://docs.ruby-lang.org/en/master/Hash.html#method-i-to_proc Hash#to_proc
|
177
177
|
def to_proc
|
178
|
-
|
178
|
+
->(k) { self[k] }
|
179
179
|
end
|
180
180
|
|
181
181
|
# @see https://docs.ruby-lang.org/en/master/Hash.html#method-i-values_at Hash#values_at
|
data/lib/openhab/core.rb
CHANGED
@@ -87,9 +87,9 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
87
87
|
def delete_if
|
88
88
|
raise NotImplementedError unless block_given?
|
89
89
|
|
90
|
-
|
91
|
-
while
|
92
|
-
|
90
|
+
itr = list_iterator
|
91
|
+
while itr.has_next? # rubocop:disable Style/WhileUntilModifier
|
92
|
+
itr.remove if yield(itr.next)
|
93
93
|
end
|
94
94
|
self
|
95
95
|
end
|
@@ -160,17 +160,17 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
160
160
|
start = range.begin
|
161
161
|
start = 0 if start.negative?
|
162
162
|
start = length if start > length
|
163
|
-
|
163
|
+
itr = list_iterator(start)
|
164
164
|
|
165
|
-
while range.cover?(
|
166
|
-
break if range.end.nil? && !
|
165
|
+
while range.cover?(itr.next_index)
|
166
|
+
break if range.end.nil? && !itr.has_next?
|
167
167
|
|
168
|
-
obj = yield(
|
169
|
-
if
|
170
|
-
|
171
|
-
|
168
|
+
obj = yield(itr.next_index) if block_given?
|
169
|
+
if itr.has_next?
|
170
|
+
itr.next
|
171
|
+
itr.set(obj)
|
172
172
|
else
|
173
|
-
|
173
|
+
itr.add(obj)
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
@@ -183,22 +183,22 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
183
183
|
"wrong number of arguments calling `flatten` (given #{args.length}, expect 0..1)"
|
184
184
|
end
|
185
185
|
|
186
|
-
|
186
|
+
itr = list_iterator
|
187
187
|
|
188
188
|
args = [args.first - 1] unless args.empty?
|
189
189
|
done = args.first == 0 # rubocop:disable Style/NumericPredicate
|
190
190
|
|
191
191
|
changed = false
|
192
|
-
while
|
193
|
-
element =
|
192
|
+
while itr.has_next?
|
193
|
+
element = itr.next
|
194
194
|
next unless element.respond_to?(:to_ary)
|
195
195
|
|
196
196
|
changed = true
|
197
|
-
|
197
|
+
itr.remove
|
198
198
|
arr = element.to_ary
|
199
199
|
arr = arr.flatten(*args) unless done
|
200
200
|
arr.each do |e|
|
201
|
-
|
201
|
+
itr.add(e)
|
202
202
|
end
|
203
203
|
end
|
204
204
|
changed ? self : nil
|
@@ -223,9 +223,9 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
223
223
|
def keep_if?
|
224
224
|
raise NotImplementedError unless block_given?
|
225
225
|
|
226
|
-
|
227
|
-
while
|
228
|
-
|
226
|
+
itr = list_iterator
|
227
|
+
while itr.has_next? # rubocop:disable Style/WhileUntilModifier
|
228
|
+
itr.remove unless yield(itr.next)
|
229
229
|
end
|
230
230
|
self
|
231
231
|
end
|
@@ -257,10 +257,10 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
257
257
|
count = args.first
|
258
258
|
start = [length - count, 0].max
|
259
259
|
result = self[start..-1].to_a # rubocop:disable Style/SlicingWithRange
|
260
|
-
|
261
|
-
while
|
262
|
-
|
263
|
-
|
260
|
+
itr = list_iterator(start)
|
261
|
+
while itr.has_next?
|
262
|
+
itr.next
|
263
|
+
itr.remove
|
264
264
|
end
|
265
265
|
result
|
266
266
|
end
|
@@ -278,12 +278,12 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
278
278
|
def reject!
|
279
279
|
raise NotImplementedError unless block_given?
|
280
280
|
|
281
|
-
|
281
|
+
itr = list_iterator
|
282
282
|
changed = false
|
283
|
-
while
|
284
|
-
if yield(
|
283
|
+
while itr.has_next
|
284
|
+
if yield(itr.next)
|
285
285
|
changed = true
|
286
|
-
|
286
|
+
itr.remove
|
287
287
|
end
|
288
288
|
end
|
289
289
|
self if changed
|
@@ -319,12 +319,12 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
319
319
|
def select!
|
320
320
|
raise NotImplementedError unless block_given?
|
321
321
|
|
322
|
-
|
322
|
+
itr = list_iterator
|
323
323
|
changed = false
|
324
|
-
while
|
325
|
-
unless yield(
|
324
|
+
while itr.has_next?
|
325
|
+
unless yield(itr.next)
|
326
326
|
changed = true
|
327
|
-
|
327
|
+
itr.remove
|
328
328
|
end
|
329
329
|
end
|
330
330
|
self if changed
|
@@ -344,12 +344,12 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
344
344
|
|
345
345
|
count = args.first
|
346
346
|
result = self[0...count].to_a
|
347
|
-
|
347
|
+
itr = list_iterator
|
348
348
|
count.times do
|
349
|
-
break unless
|
349
|
+
break unless itr.has_next?
|
350
350
|
|
351
|
-
|
352
|
-
|
351
|
+
itr.next
|
352
|
+
itr.remove
|
353
353
|
end
|
354
354
|
result
|
355
355
|
end
|
@@ -377,10 +377,10 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
377
377
|
|
378
378
|
result = slice(*args).to_a
|
379
379
|
|
380
|
-
|
380
|
+
itr = list_iterator(start)
|
381
381
|
result.length.times do
|
382
|
-
|
383
|
-
|
382
|
+
itr.next
|
383
|
+
itr.remove
|
384
384
|
end
|
385
385
|
result
|
386
386
|
end
|
@@ -395,14 +395,14 @@ module Java::JavaUtil::List # rubocop:disable Style/ClassAndModuleChildren
|
|
395
395
|
def uniq!
|
396
396
|
seen = Set.new
|
397
397
|
|
398
|
-
|
398
|
+
itr = list_iterator
|
399
399
|
changed = false
|
400
|
-
while
|
401
|
-
n =
|
400
|
+
while itr.has_next?
|
401
|
+
n = itr.next
|
402
402
|
n = yield(n) if block_given?
|
403
403
|
if seen.include?(n)
|
404
404
|
changed = true
|
405
|
-
|
405
|
+
itr.remove
|
406
406
|
end
|
407
407
|
seen << n
|
408
408
|
end
|
@@ -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: '8.0'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '8.0'
|
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
|