openhab-jrubyscripting 5.0.0.rc9 → 5.0.0.rc11
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/audio.rb +47 -0
- data/lib/openhab/core/actions/ephemeris.rb +39 -0
- data/lib/openhab/core/actions/exec.rb +51 -0
- data/lib/openhab/core/actions/http.rb +80 -0
- data/lib/openhab/core/actions/ping.rb +30 -0
- data/lib/openhab/core/actions/transformation.rb +32 -0
- data/lib/openhab/core/actions/voice.rb +36 -0
- data/lib/openhab/core/actions.rb +23 -120
- data/lib/openhab/core/{events → dto}/item_channel_link.rb +1 -4
- data/lib/openhab/core/{events → dto}/thing.rb +10 -12
- data/lib/openhab/core/dto.rb +11 -0
- data/lib/openhab/core/entity_lookup.rb +1 -1
- data/lib/openhab/core/events/abstract_event.rb +1 -0
- data/lib/openhab/core/events/abstract_item_registry_event.rb +36 -0
- data/lib/openhab/core/events/abstract_thing_registry_event.rb +40 -0
- data/lib/openhab/core/events/item_command_event.rb +1 -1
- data/lib/openhab/core/events/item_state_changed_event.rb +6 -6
- data/lib/openhab/core/events/item_state_event.rb +6 -6
- data/lib/openhab/core/events/thing_status_info_event.rb +8 -6
- data/lib/openhab/core/items/generic_item.rb +2 -1
- data/lib/openhab/core/items/persistence.rb +52 -18
- data/lib/openhab/core/items/player_item.rb +1 -1
- data/lib/openhab/core/items/proxy.rb +20 -14
- data/lib/openhab/core/items/registry.rb +2 -0
- data/lib/openhab/core/items.rb +3 -3
- data/lib/openhab/core/profile_factory.rb +3 -1
- data/lib/openhab/core/proxy.rb +125 -0
- data/lib/openhab/core/things/links/provider.rb +1 -1
- data/lib/openhab/core/things/proxy.rb +8 -0
- data/lib/openhab/core/types/date_time_type.rb +2 -1
- data/lib/openhab/core/types/decimal_type.rb +1 -1
- data/lib/openhab/core/types/un_def_type.rb +2 -2
- data/lib/openhab/core/value_cache.rb +1 -1
- data/lib/openhab/core_ext/ephemeris.rb +53 -0
- data/lib/openhab/core_ext/java/class.rb +1 -1
- data/lib/openhab/core_ext/java/duration.rb +25 -1
- data/lib/openhab/core_ext/java/local_date.rb +2 -0
- data/lib/openhab/core_ext/java/month_day.rb +2 -0
- data/lib/openhab/core_ext/java/zoned_date_time.rb +85 -0
- data/lib/openhab/core_ext/ruby/date.rb +2 -0
- data/lib/openhab/core_ext/ruby/date_time.rb +1 -0
- data/lib/openhab/core_ext/ruby/time.rb +1 -0
- data/lib/openhab/dsl/debouncer.rb +259 -0
- data/lib/openhab/dsl/items/builder.rb +4 -2
- data/lib/openhab/dsl/items/timed_command.rb +31 -13
- data/lib/openhab/dsl/rules/automation_rule.rb +28 -21
- data/lib/openhab/dsl/rules/builder.rb +357 -37
- data/lib/openhab/dsl/rules/guard.rb +12 -54
- data/lib/openhab/dsl/rules/name_inference.rb +11 -0
- data/lib/openhab/dsl/rules/property.rb +3 -4
- data/lib/openhab/dsl/rules/terse.rb +4 -1
- data/lib/openhab/dsl/rules/triggers/conditions/duration.rb +5 -6
- data/lib/openhab/dsl/rules/triggers/cron/cron.rb +1 -0
- data/lib/openhab/dsl/rules/triggers/cron/cron_handler.rb +19 -31
- data/lib/openhab/dsl/rules/triggers/watch/watch.rb +1 -0
- data/lib/openhab/dsl/rules/triggers/watch/watch_handler.rb +22 -30
- data/lib/openhab/dsl/things/builder.rb +1 -1
- data/lib/openhab/dsl/thread_local.rb +1 -0
- data/lib/openhab/dsl/version.rb +1 -1
- data/lib/openhab/dsl.rb +224 -3
- data/lib/openhab/rspec/hooks.rb +5 -2
- data/lib/openhab/rspec/karaf.rb +7 -0
- data/lib/openhab/rspec/mocks/instance_method_stasher.rb +22 -0
- data/lib/openhab/rspec/mocks/space.rb +23 -0
- data/lib/openhab/rspec/openhab/core/actions.rb +16 -4
- data/lib/openhab/rspec/openhab/core/items/proxy.rb +1 -13
- data/lib/openhab/rspec/suspend_rules.rb +1 -14
- data/lib/openhab/yard/base_helper.rb +19 -0
- data/lib/openhab/yard/code_objects/group_object.rb +9 -3
- data/lib/openhab/yard/coderay.rb +17 -0
- data/lib/openhab/yard/handlers/jruby/base.rb +10 -1
- data/lib/openhab/yard/handlers/jruby/java_import_handler.rb +3 -0
- data/lib/openhab/yard/html_helper.rb +49 -15
- data/lib/openhab/yard/markdown_helper.rb +135 -0
- data/lib/openhab/yard.rb +6 -0
- metadata +36 -4
@@ -0,0 +1,135 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenHAB
|
4
|
+
module YARD
|
5
|
+
# @!visibility private
|
6
|
+
module MarkdownHelper
|
7
|
+
include ::YARD::Templates::Helpers::HtmlHelper
|
8
|
+
# @group Linking Objects and URLs
|
9
|
+
|
10
|
+
def diskfile
|
11
|
+
resolve_links(super)
|
12
|
+
end
|
13
|
+
|
14
|
+
# mostly copied from HTMLHelper
|
15
|
+
def resolve_links(text)
|
16
|
+
blockquotes = false
|
17
|
+
text.gsub(%r{(```)|(\\|!)?\{(?!\})(\S+?)(?:\s([^\}]*?\S))?\}(?=[\W<]|.+</|$)}m) do |str|
|
18
|
+
blockquote = $1
|
19
|
+
escape = $2
|
20
|
+
name = $3
|
21
|
+
title = $4
|
22
|
+
match = $&
|
23
|
+
if blockquote
|
24
|
+
blockquotes = !blockquotes
|
25
|
+
next str
|
26
|
+
end
|
27
|
+
next str if blockquotes
|
28
|
+
|
29
|
+
next(match[1..]) if escape
|
30
|
+
|
31
|
+
next(match) if name[0, 1] == "|"
|
32
|
+
|
33
|
+
if object.is_a?(String)
|
34
|
+
object
|
35
|
+
else
|
36
|
+
link = linkify(name, title)
|
37
|
+
if (link == name || link == title) && ("#{name} #{link}" !~ /\A<a\s.*>/)
|
38
|
+
match = /(.+)?(\{#{Regexp.quote name}(?:\s.*?)?\})(.+)?/.match(text)
|
39
|
+
file = ((defined?(@file) && @file) ? @file.filename : object.file) || "(unknown)"
|
40
|
+
line = (if defined?(@file) && @file
|
41
|
+
1
|
42
|
+
else
|
43
|
+
(object.docstring.line_range ? object.docstring.line_range.first : 1)
|
44
|
+
end) + (match ? $`.count("\n") : 0)
|
45
|
+
if match
|
46
|
+
log.warn "In file `#{file}':#{line}: Cannot resolve link to #{name} from text#{match ? ":" : "."}\n" \
|
47
|
+
"\t#{match[1] ? "..." : ""}#{match[2].delete("\n")}#{match[3] ? "..." : ""}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
link
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# mostly copied from HTMLHelper
|
57
|
+
def link_object(obj, title = nil, anchor = nil, relative = true) # rubocop:disable Style/OptionalBooleanParameter
|
58
|
+
return title if obj.nil?
|
59
|
+
|
60
|
+
obj = ::YARD::Registry.resolve(object, obj, true, true) if obj.is_a?(String)
|
61
|
+
|
62
|
+
was_const = false
|
63
|
+
# Re-link references to constants that are aliases to their target. But keep
|
64
|
+
# their current title.
|
65
|
+
while obj.is_a?(::YARD::CodeObjects::ConstantObject) && obj.target
|
66
|
+
title ||= h(object.relative_path(obj)).to_s
|
67
|
+
was_const = true
|
68
|
+
obj = obj.target
|
69
|
+
end
|
70
|
+
return link_object(obj, title, anchor, relative) if was_const
|
71
|
+
|
72
|
+
title = if title
|
73
|
+
title.to_s
|
74
|
+
elsif object.is_a?(::YARD::CodeObjects::Base)
|
75
|
+
# Check if we're linking to a class method in the current
|
76
|
+
# object. If we are, create a title in the format of
|
77
|
+
# "CurrentClass.method_name"
|
78
|
+
if obj.is_a?(::YARD::CodeObjects::MethodObject) && obj.scope == :class && obj.parent == object
|
79
|
+
h([object.name, obj.sep, obj.name].join)
|
80
|
+
elsif obj.title != obj.path
|
81
|
+
h(obj.title)
|
82
|
+
else
|
83
|
+
h(object.relative_path(obj))
|
84
|
+
end
|
85
|
+
else
|
86
|
+
h(obj.title)
|
87
|
+
end
|
88
|
+
return title unless serializer
|
89
|
+
return title if obj.is_a?(::YARD::CodeObjects::Proxy)
|
90
|
+
|
91
|
+
link = url_for(obj, anchor, relative)
|
92
|
+
link ? link_url(link, title, title: h("#{obj.title} (#{obj.type})")) : title
|
93
|
+
rescue ::YARD::Parser::UndocumentableError
|
94
|
+
log.warn "The namespace of link #{obj.inspect} is a constant or invalid."
|
95
|
+
title || obj.to_s
|
96
|
+
end
|
97
|
+
|
98
|
+
def url_for(obj, anchor = nil, relative = true) # rubocop:disable Style/OptionalBooleanParameter
|
99
|
+
link = nil
|
100
|
+
return link unless serializer
|
101
|
+
return link if obj.is_a?(::YARD::CodeObjects::Base) && run_verifier([obj]).empty?
|
102
|
+
|
103
|
+
if obj.is_a?(::YARD::CodeObjects::Base) && !obj.is_a?(::YARD::CodeObjects::NamespaceObject)
|
104
|
+
# If the obj is not a namespace obj make it the anchor.
|
105
|
+
anchor = obj
|
106
|
+
obj = obj.namespace
|
107
|
+
end
|
108
|
+
|
109
|
+
objpath = serializer.serialized_path(obj)
|
110
|
+
return link unless objpath
|
111
|
+
|
112
|
+
relative = false if object == ::YARD::Registry.root
|
113
|
+
if relative
|
114
|
+
fromobj = object
|
115
|
+
if object.is_a?(::YARD::CodeObjects::Base) &&
|
116
|
+
!object.is_a?(::YARD::CodeObjects::NamespaceObject)
|
117
|
+
fromobj = owner
|
118
|
+
end
|
119
|
+
|
120
|
+
from = serializer.serialized_path(fromobj)
|
121
|
+
link = File.relative_path(from, objpath)
|
122
|
+
else
|
123
|
+
link = File.join(serializer.basepath, objpath)
|
124
|
+
end
|
125
|
+
|
126
|
+
link + (anchor ? "##{urlencode(anchor_for(anchor))}" : "")
|
127
|
+
end
|
128
|
+
|
129
|
+
def link_url(url, title = nil, _params = nil)
|
130
|
+
title ||= url
|
131
|
+
"[#{title}](#{url})"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
data/lib/openhab/yard.rb
CHANGED
@@ -6,10 +6,16 @@ Dir[File.expand_path("yard/**/*.rb", __dir__)].sort.each do |f|
|
|
6
6
|
require f
|
7
7
|
end
|
8
8
|
|
9
|
+
YARD::Templates::Template.extra_includes << OpenHAB::YARD::BaseHelper
|
10
|
+
YARD::Templates::Template.extra_includes << ->(opts) { OpenHAB::YARD::CodeRay::HtmlHelper if opts.format == :html }
|
9
11
|
YARD::Templates::Template.extra_includes << ->(opts) { OpenHAB::YARD::HtmlHelper if opts.format == :html }
|
12
|
+
YARD::Templates::Template.extra_includes << ->(opts) { OpenHAB::YARD::MarkdownHelper if opts.format == :markdown }
|
13
|
+
|
10
14
|
YARD::Templates::Engine.register_template_path File.expand_path("../../templates", __dir__)
|
11
15
|
YARD::Tags::Library.define_tag "Java Interface", :interface
|
12
16
|
|
17
|
+
YARD::Server.register_static_path(".")
|
18
|
+
|
13
19
|
#
|
14
20
|
# @!parse
|
15
21
|
# # @!visibility private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openhab-jrubyscripting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.0.
|
4
|
+
version: 5.0.0.rc11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-12-
|
11
|
+
date: 2022-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '1.4'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: nokogiri
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.13.9
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 1.13.9
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: persistent_httparty
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -327,16 +341,26 @@ extra_rdoc_files: []
|
|
327
341
|
files:
|
328
342
|
- lib/openhab/core.rb
|
329
343
|
- lib/openhab/core/actions.rb
|
344
|
+
- lib/openhab/core/actions/audio.rb
|
345
|
+
- lib/openhab/core/actions/ephemeris.rb
|
346
|
+
- lib/openhab/core/actions/exec.rb
|
347
|
+
- lib/openhab/core/actions/http.rb
|
348
|
+
- lib/openhab/core/actions/ping.rb
|
349
|
+
- lib/openhab/core/actions/transformation.rb
|
350
|
+
- lib/openhab/core/actions/voice.rb
|
330
351
|
- lib/openhab/core/dependency_tracking.rb
|
352
|
+
- lib/openhab/core/dto.rb
|
353
|
+
- lib/openhab/core/dto/item_channel_link.rb
|
354
|
+
- lib/openhab/core/dto/thing.rb
|
331
355
|
- lib/openhab/core/entity_lookup.rb
|
332
356
|
- lib/openhab/core/events.rb
|
333
357
|
- lib/openhab/core/events/abstract_event.rb
|
334
|
-
- lib/openhab/core/events/
|
358
|
+
- lib/openhab/core/events/abstract_item_registry_event.rb
|
359
|
+
- lib/openhab/core/events/abstract_thing_registry_event.rb
|
335
360
|
- lib/openhab/core/events/item_command_event.rb
|
336
361
|
- lib/openhab/core/events/item_event.rb
|
337
362
|
- lib/openhab/core/events/item_state_changed_event.rb
|
338
363
|
- lib/openhab/core/events/item_state_event.rb
|
339
|
-
- lib/openhab/core/events/thing.rb
|
340
364
|
- lib/openhab/core/events/thing_status_info_event.rb
|
341
365
|
- lib/openhab/core/items.rb
|
342
366
|
- lib/openhab/core/items/accepted_data_types.rb
|
@@ -369,6 +393,7 @@ files:
|
|
369
393
|
- lib/openhab/core/lazy_array.rb
|
370
394
|
- lib/openhab/core/profile_factory.rb
|
371
395
|
- lib/openhab/core/provider.rb
|
396
|
+
- lib/openhab/core/proxy.rb
|
372
397
|
- lib/openhab/core/registry.rb
|
373
398
|
- lib/openhab/core/rules.rb
|
374
399
|
- lib/openhab/core/rules/module.rb
|
@@ -413,6 +438,7 @@ files:
|
|
413
438
|
- lib/openhab/core/value_cache.rb
|
414
439
|
- lib/openhab/core_ext.rb
|
415
440
|
- lib/openhab/core_ext/between.rb
|
441
|
+
- lib/openhab/core_ext/ephemeris.rb
|
416
442
|
- lib/openhab/core_ext/java/class.rb
|
417
443
|
- lib/openhab/core_ext/java/duration.rb
|
418
444
|
- lib/openhab/core_ext/java/list.rb
|
@@ -435,6 +461,7 @@ files:
|
|
435
461
|
- lib/openhab/core_ext/ruby/symbol.rb
|
436
462
|
- lib/openhab/core_ext/ruby/time.rb
|
437
463
|
- lib/openhab/dsl.rb
|
464
|
+
- lib/openhab/dsl/debouncer.rb
|
438
465
|
- lib/openhab/dsl/events.rb
|
439
466
|
- lib/openhab/dsl/events/watch_event.rb
|
440
467
|
- lib/openhab/dsl/gems.rb
|
@@ -477,8 +504,10 @@ files:
|
|
477
504
|
- lib/openhab/rspec/mocks/bundle_install_support.rb
|
478
505
|
- lib/openhab/rspec/mocks/bundle_resolver.rb
|
479
506
|
- lib/openhab/rspec/mocks/event_admin.rb
|
507
|
+
- lib/openhab/rspec/mocks/instance_method_stasher.rb
|
480
508
|
- lib/openhab/rspec/mocks/persistence_service.rb
|
481
509
|
- lib/openhab/rspec/mocks/safe_caller.rb
|
510
|
+
- lib/openhab/rspec/mocks/space.rb
|
482
511
|
- lib/openhab/rspec/mocks/synchronous_executor.rb
|
483
512
|
- lib/openhab/rspec/mocks/thing_handler.rb
|
484
513
|
- lib/openhab/rspec/mocks/timer.rb
|
@@ -488,6 +517,7 @@ files:
|
|
488
517
|
- lib/openhab/rspec/shell.rb
|
489
518
|
- lib/openhab/rspec/suspend_rules.rb
|
490
519
|
- lib/openhab/yard.rb
|
520
|
+
- lib/openhab/yard/base_helper.rb
|
491
521
|
- lib/openhab/yard/cli/stats.rb
|
492
522
|
- lib/openhab/yard/code_objects/group_object.rb
|
493
523
|
- lib/openhab/yard/code_objects/java/base.rb
|
@@ -496,12 +526,14 @@ files:
|
|
496
526
|
- lib/openhab/yard/code_objects/java/interface_object.rb
|
497
527
|
- lib/openhab/yard/code_objects/java/package_object.rb
|
498
528
|
- lib/openhab/yard/code_objects/java/proxy.rb
|
529
|
+
- lib/openhab/yard/coderay.rb
|
499
530
|
- lib/openhab/yard/handlers/jruby/base.rb
|
500
531
|
- lib/openhab/yard/handlers/jruby/class_handler.rb
|
501
532
|
- lib/openhab/yard/handlers/jruby/constant_handler.rb
|
502
533
|
- lib/openhab/yard/handlers/jruby/java_import_handler.rb
|
503
534
|
- lib/openhab/yard/handlers/jruby/mixin_handler.rb
|
504
535
|
- lib/openhab/yard/html_helper.rb
|
536
|
+
- lib/openhab/yard/markdown_helper.rb
|
505
537
|
- lib/openhab/yard/tags/constant_directive.rb
|
506
538
|
- lib/openhab/yard/tags/group_directive.rb
|
507
539
|
- lib/openhab/yard/tags/library.rb
|