openhab-scripting 4.22.2 → 4.23.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: 445030f6b4a4337bf93526051c00262a84695be09b3c9dea14f40ccd1c2e20d2
4
- data.tar.gz: ff6198e6482c7650c3d9878f577ce89c17a5caf6d000f114dbc6a6e9f5483cf8
3
+ metadata.gz: 6a1dda09cc4876b335d5da064fa1e19a1196f56d030225e96f6c6efe0c22d3f6
4
+ data.tar.gz: 23cac17429e99d6757db5f7232e53f8d77a656fb9bfb15d2ee4984fde63d691c
5
5
  SHA512:
6
- metadata.gz: d208d4623c547442f4d97c9f0ae663e18041e4f4b774b5124c96a92feb54ebd307160180f62de5c322a691f89dbd1f9315597cbf4eff98cbd01c02cf32df3b28
7
- data.tar.gz: 8ad90301acb4144bfe816f1a4c83824d4e31ef9bed567a2032cb14a3b7e7287039906aae7ebf57770810d91e2fbf856f63452accb7c95090d7b51563adff8d0d
6
+ metadata.gz: 5e473c9f0e2764d041613fd728377895430e790846986d3aca9b508f1ef3c0999c72473402cc0094d42c866871fa3161daeb0d4eedc3173b5485e9e33ab9f979
7
+ data.tar.gz: fdddf783a82f71c0e1364f47f8397daa394ded4935bd16f7746000f9c6f466db074000a2bf065ee1f1daf05f43f1fa1a3d94db3169144cadc7cb2114b5a96a36
@@ -48,10 +48,51 @@ module OpenHAB
48
48
  # convert it to an HSBType
49
49
  # @!visibility private
50
50
  def format_type(command)
51
+ return format_hash(command.to_hash) if command.respond_to?(:to_hash)
51
52
  return Types::HSBType.new(command) if command.respond_to?(:to_str)
52
53
 
53
54
  super
54
55
  end
56
+
57
+ #
58
+ # Convert the ColorItem to a hash
59
+ # @param [:hsb, :rgb] format for hash
60
+ # @return [Hash] in requested format
61
+ def to_h(format = :hsb)
62
+ values = to_a(format)
63
+ keys = (format == :hsb ? %i[hue saturation brightness] : %i[red green blue])
64
+ keys.zip(values).to_h
65
+ end
66
+
67
+ #
68
+ # Convert the ColorItem to an array of values
69
+ # @param [:hsb, :rgb] format for elements in the array
70
+ # @return [Array] of ColorItem components in requested format
71
+ def to_a(format = :hsb)
72
+ case format
73
+ when :hsb then [hue, saturation, brightness]
74
+ when :rgb then [red, green, blue].map(&:to_byte)
75
+ else
76
+ raise ArgumentError, "Unsupported format #{format}"
77
+ end
78
+ end
79
+
80
+ private
81
+
82
+ # Mapping of hash values sets to conversion methods
83
+ HASH_KEYS = { %i[r g b] => :from_rgb,
84
+ %i[red green blue] => :from_rgb,
85
+ %i[h s b] => :from_hsb,
86
+ %i[hue saturation brightness] => :from_hsb }.freeze
87
+
88
+ def format_hash(hash)
89
+ hash = hash.transform_keys(&:to_sym)
90
+ HASH_KEYS.each do |key_set, method|
91
+ values = hash.values_at(*key_set).compact
92
+ return Types::HSBType.public_send(method, *values) if values.length == 3
93
+ end
94
+ raise ArgumentError, "Supplied hash (#{hash}) must contain one of the following keysets #{keys.keys}"
95
+ end
55
96
  end
56
97
  end
57
98
  end
@@ -107,10 +107,13 @@ module OpenHAB
107
107
  # Extend MonthDay java object with some helper methods
108
108
  class MonthDay
109
109
  include OpenHAB::Log
110
+ java_import java.time.format.DateTimeFormatter
110
111
  # Parse MonthDay string as defined with by Monthday class without leading double dash "--"
111
112
  def self.parse(string)
112
- ## string = "--#{string}" unless string.to_s.start_with? '--'
113
- java_send :parse, [java.lang.CharSequence], "--#{string}"
113
+ logger.trace("#{self.class}.parse #{string} (#{string.class})")
114
+ java_send :parse, [java.lang.CharSequence, java.time.format.DateTimeFormatter],
115
+ string.to_s,
116
+ DateTimeFormatter.ofPattern('[--]M-d')
114
117
  end
115
118
 
116
119
  # Can the supplied object be parsed into a MonthDay
@@ -123,6 +126,9 @@ module OpenHAB
123
126
  to_string.delete_prefix('--')
124
127
  end
125
128
 
129
+ # remove the inherited #== method to use our <=> below
130
+ remove_method :==
131
+
126
132
  # Extends MonthDay comparison to support Strings
127
133
  # Necessary to support mixed ranges of Strings and MonthDay types
128
134
  # @return [Number, nil] -1,0,1 if other MonthDay is less than, equal to, or greater than this MonthDay
@@ -5,5 +5,5 @@
5
5
  #
6
6
  module OpenHAB
7
7
  # @return [String] Version of OpenHAB helper libraries
8
- VERSION = '4.22.2'
8
+ VERSION = '4.23.0'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openhab-scripting
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.22.2
4
+ version: 4.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian O'Connell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-04 00:00:00.000000000 Z
11
+ date: 2021-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler