openhab-scripting 2.9.2 → 2.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 612f0dcb06de54823cfacbb59c009ced999f41f0d6751fe7168329eedfd80130
4
- data.tar.gz: f1ea6c2072a55dfa3af8e4a2ab86368d7579899a67699277eefba155be120863
3
+ metadata.gz: a2d12cc054e377bd657e80ef28661155676fa325526ceb2b787cd64772af876b
4
+ data.tar.gz: 27152a95a1526ebb15bb63224197bbb96d8da6a25a5548b50ae796e4f2371fbd
5
5
  SHA512:
6
- metadata.gz: 856b15b13e5d844be475fbdc104a3d3f6ec9b0644868e22d1ce99ed821d71a6b09315d7191cc100db7cb2d3c9a9a3fb39b797c23deb20c206eb4a9ad0fe271e4
7
- data.tar.gz: 385e0b060f8bca36c175c98a3ad05d130cb57cfbc0e4ea269a56c642e40f7878198437ea719c3df85317ce56da8531517507e8b268d68217004b1bcf55ac5afb
6
+ metadata.gz: e533069444e06d2d6bbb656c5d43f8295195a9d73c325fa12fa2d16fb0a0296aaa51ce5d036233429703f9b8d4c9f22f7298673f3579f6e1c1c6dadb841d8821
7
+ data.tar.gz: 48ef8d6d80f28d974b1e42da67b904c4ac524b687ef1f4be1ea50edf970e8c48de0dac3503a97043130a1d6c88cb915a1c3b972d093961e174208435f0a03a56
@@ -1,29 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'core/log'
4
-
5
- begin
6
- require 'bundler/inline'
7
-
8
- include Logging
9
- logger.debug('Bundler required')
10
- rescue LoadError
11
- include Logging
12
- logger.debug('Bundler not found installing')
13
-
14
- begin
15
- require 'rubygems/commands/install_command'
16
- cmd = Gem::Commands::InstallCommand.new
17
- cmd.handle_options ['--no-document', 'bundler', '-v', '2.1.4']
18
- cmd.execute
19
- logger.debug('Bundler is installed')
20
- require 'bundler/inline'
21
- rescue Gem::SystemExitException => e
22
- if e.exit_code.zero?
23
- logger.debug('Bundler is installed')
24
- require 'bundler/inline'
25
- else
26
- logger.error("Error installing bundler, exit code: #{e}")
27
- end
28
- end
29
- end
4
+ require 'bundler/inline'
@@ -22,7 +22,17 @@ module OpenHAB
22
22
  item = $ir.getItem(name)
23
23
  # rubocop: enable Style/GlobalVars
24
24
  (item.is_a? GroupItem) ? nil : item
25
+ rescue Java::OrgOpenhabCoreItems::ItemNotFoundException
26
+ nil
25
27
  end
28
+
29
+ # Returns true if the given item name exists
30
+ # @param name [String] Item name to check
31
+ # @return [Boolean] true if the item exists, false otherwise
32
+ def include?(name)
33
+ !$ir.getItems(name).empty?
34
+ end
35
+ alias key? include?
26
36
  end
27
37
 
28
38
  java_import org.openhab.core.items.GroupItem
@@ -97,6 +97,7 @@ module OpenHAB
97
97
  #
98
98
  def updated(*items, to: nil)
99
99
  items.flatten.each do |item|
100
+ item = item.group if item.is_a? Group
100
101
  logger.trace("Creating updated trigger for item(#{item}) to(#{to})")
101
102
  [to].flatten.each do |to_state|
102
103
  case item
@@ -303,6 +303,23 @@ module OpenHAB
303
303
  false
304
304
  end
305
305
 
306
+ #
307
+ # Patch event to include event.item when it doesn't exist
308
+ # This is to patch a bug see https://github.com/boc-tothefuture/openhab-jruby/issues/75
309
+ # It may be fixed in the openhab core in the future, in which case, this patch will no longer be necessary
310
+ #
311
+ # @param [OpenHAB Event] event to check for item accessor
312
+ # @param [OpenHAB Event Inputs] inputs inputs to running rule
313
+ #
314
+ def add_event_item(event, inputs)
315
+ return if event.nil? || defined?(event.item)
316
+
317
+ class << event
318
+ attr_accessor :item
319
+ end
320
+ event.item = inputs&.dig('triggeringItem')
321
+ end
322
+
306
323
  #
307
324
  # Process the run queue
308
325
  #
@@ -317,7 +334,7 @@ module OpenHAB
317
334
  when RuleConfig::Run
318
335
 
319
336
  event = inputs&.dig('event')
320
-
337
+ add_event_item(event, inputs)
321
338
  logger.trace { "Executing rule '#{name}' run block with event(#{event})" }
322
339
  task.block.call(event)
323
340
  when RuleConfig::Trigger
@@ -64,6 +64,15 @@ module OpenHAB
64
64
  @amount * 1000 * 60 * 60
65
65
  end
66
66
  end
67
+
68
+ #
69
+ # Return a string representation of the duration
70
+ #
71
+ # @return [String] Duration in string
72
+ #
73
+ def to_s
74
+ "#{@amount} #{(@amount == 1) ? @temporal_unit.to_s.downcase.delete_suffix('s') : @temporal_unit.to_s.downcase}"
75
+ end
67
76
  end
68
77
  end
69
78
  end
@@ -5,5 +5,5 @@
5
5
  #
6
6
  module OpenHAB
7
7
  # @return [String] Version of OpenHAB helper libraries
8
- VERSION = '2.9.2'
8
+ VERSION = '2.12.0'
9
9
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openhab-scripting
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.2
4
+ version: 2.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian O'Connell
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-28 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.2'
13
27
  description: JRuby Helper Libraries for OpenHAB Scripting
14
28
  email:
15
29
  - broconne@gmail.com
@@ -74,7 +88,7 @@ metadata:
74
88
  homepage_uri: https://boc-tothefuture.github.io/openhab-jruby/
75
89
  source_code_uri: https://github.com/boc-tothefuture/openhab-jruby
76
90
  changelog_uri: https://github.com/boc-tothefuture/openhab-jruby/blob/main/CHANGELOG.md
77
- post_install_message:
91
+ post_install_message:
78
92
  rdoc_options: []
79
93
  require_paths:
80
94
  - lib
@@ -89,9 +103,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
103
  - !ruby/object:Gem::Version
90
104
  version: '0'
91
105
  requirements: []
92
- rubyforge_project:
106
+ rubyforge_project:
93
107
  rubygems_version: 2.7.6.2
94
- signing_key:
108
+ signing_key:
95
109
  specification_version: 4
96
110
  summary: JRuby Helper Libraries for OpenHAB Scripting
97
111
  test_files: []