openhab-scripting 2.23.0 → 2.23.1
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/dsl/items/datetime_item.rb +4 -30
 - data/lib/openhab/dsl/items/item_delegate.rb +91 -0
 - data/lib/openhab/dsl/items/number_item.rb +4 -34
 - data/lib/openhab/dsl/items/rollershutter_item.rb +5 -45
 - data/lib/openhab/dsl/items/string_item.rb +7 -36
 - data/lib/openhab/dsl/monkey_patch/items/dimmer_item.rb +23 -75
 - data/lib/openhab/version.rb +1 -1
 - metadata +2 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 1af0c9d15b41ac54e58540ccab079a6c084931abf80f5add687511d332d3afa2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 5e3c341ecf96ab4fb11b6ca6cefae01a27dc02b2498e9e3896ef4683baa3f6e5
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: e0238451b9d78d45c225f98ede7b86580e26c7c3edfc7681f6942b7f5a7c4dbfb67f98c5c76ccf8a437cfa779bfa2eb9b0c8639b1c4a24206b99b8ca80a3803f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 616d30281aef1da66964cba5d1c6365b24939f4fbec3070e4251551e3c8c7552191835da12e4795d5698e9671add7739a411e53e7b347de65a8b4a9c0fb249a0
         
     | 
| 
         @@ -4,6 +4,7 @@ require 'forwardable' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require 'java'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'time'
         
     | 
| 
       6 
6 
     | 
    
         
             
            require 'openhab/dsl/types/datetime'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'openhab/dsl/items/item_delegate'
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
9 
     | 
    
         
             
            module OpenHAB
         
     | 
| 
       9 
10 
     | 
    
         
             
              module DSL
         
     | 
| 
         @@ -16,6 +17,7 @@ module OpenHAB 
     | 
|
| 
       16 
17 
     | 
    
         
             
                  class DateTimeItem
         
     | 
| 
       17 
18 
     | 
    
         
             
                    extend Forwardable
         
     | 
| 
       18 
19 
     | 
    
         
             
                    include Comparable
         
     | 
| 
      
 20 
     | 
    
         
            +
                    include OpenHAB::DSL::Items::ItemDelegate
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
22 
     | 
    
         
             
                    def_delegator :@datetime_item, :to_s
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
         @@ -27,6 +29,8 @@ module OpenHAB 
     | 
|
| 
       27 
29 
     | 
    
         
             
                    #
         
     | 
| 
       28 
30 
     | 
    
         
             
                    def initialize(datetime_item)
         
     | 
| 
       29 
31 
     | 
    
         
             
                      @datetime_item = datetime_item
         
     | 
| 
      
 32 
     | 
    
         
            +
                      item_delegate { @datetime_item }
         
     | 
| 
      
 33 
     | 
    
         
            +
                      item_delegate { to_dt }
         
     | 
| 
       30 
34 
     | 
    
         
             
                    end
         
     | 
| 
       31 
35 
     | 
    
         | 
| 
       32 
36 
     | 
    
         
             
                    #
         
     | 
| 
         @@ -61,36 +65,6 @@ module OpenHAB 
     | 
|
| 
       61 
65 
     | 
    
         
             
                    def zone
         
     | 
| 
       62 
66 
     | 
    
         
             
                      to_dt.zone if state?
         
     | 
| 
       63 
67 
     | 
    
         
             
                    end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                    #
         
     | 
| 
       66 
     | 
    
         
            -
                    # Check if missing method can be delegated to other contained objects
         
     | 
| 
       67 
     | 
    
         
            -
                    #
         
     | 
| 
       68 
     | 
    
         
            -
                    # @param [String, Symbol] meth The method name to check for
         
     | 
| 
       69 
     | 
    
         
            -
                    #
         
     | 
| 
       70 
     | 
    
         
            -
                    # @return [Boolean] true if DateTimeItem or DateTime responds to the method, false otherwise
         
     | 
| 
       71 
     | 
    
         
            -
                    #
         
     | 
| 
       72 
     | 
    
         
            -
                    def respond_to_missing?(meth, *)
         
     | 
| 
       73 
     | 
    
         
            -
                      @datetime_item.respond_to?(meth) || to_dt.respond_to?(meth)
         
     | 
| 
       74 
     | 
    
         
            -
                    end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                    #
         
     | 
| 
       77 
     | 
    
         
            -
                    # Forward missing methods to the OpenHAB Item, or a DateTime object wrapping its state
         
     | 
| 
       78 
     | 
    
         
            -
                    #
         
     | 
| 
       79 
     | 
    
         
            -
                    # @param [String] meth method name
         
     | 
| 
       80 
     | 
    
         
            -
                    # @param [Array] args arguments for method
         
     | 
| 
       81 
     | 
    
         
            -
                    # @param [Proc] block <description>
         
     | 
| 
       82 
     | 
    
         
            -
                    #
         
     | 
| 
       83 
     | 
    
         
            -
                    # @return [Object] Value from delegated method in OpenHAB NumberItem
         
     | 
| 
       84 
     | 
    
         
            -
                    #
         
     | 
| 
       85 
     | 
    
         
            -
                    def method_missing(meth, *args, &block)
         
     | 
| 
       86 
     | 
    
         
            -
                      if @datetime_item.respond_to?(meth)
         
     | 
| 
       87 
     | 
    
         
            -
                        @datetime_item.__send__(meth, *args, &block)
         
     | 
| 
       88 
     | 
    
         
            -
                      elsif state?
         
     | 
| 
       89 
     | 
    
         
            -
                        to_dt.send(meth, *args, &block)
         
     | 
| 
       90 
     | 
    
         
            -
                      else
         
     | 
| 
       91 
     | 
    
         
            -
                        raise NoMethodError, "undefined method `#{meth}' for #{self.class}"
         
     | 
| 
       92 
     | 
    
         
            -
                      end
         
     | 
| 
       93 
     | 
    
         
            -
                    end
         
     | 
| 
       94 
68 
     | 
    
         
             
                  end
         
     | 
| 
       95 
69 
     | 
    
         
             
                end
         
     | 
| 
       96 
70 
     | 
    
         
             
              end
         
     | 
| 
         @@ -0,0 +1,91 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'java'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'openhab/log/logger'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module OpenHAB
         
     | 
| 
      
 7 
     | 
    
         
            +
              module DSL
         
     | 
| 
      
 8 
     | 
    
         
            +
                module Items
         
     | 
| 
      
 9 
     | 
    
         
            +
                  #
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # Holds methods to delegate to items
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  module ItemDelegate
         
     | 
| 
      
 13 
     | 
    
         
            +
                    include OpenHAB::Log
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    #
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # Delegates methods to the object returned from the supplied block if
         
     | 
| 
      
 17 
     | 
    
         
            +
                    #   they don't exist in the object this is included in.  If the supplied block returns nil, no delegation occurs
         
     | 
| 
      
 18 
     | 
    
         
            +
                    # If this item is called more than once delegation occurs in the order of invocation, i.e. the object returned
         
     | 
| 
      
 19 
     | 
    
         
            +
                    #   by the first block is delegated to if it responds to the missing method,
         
     | 
| 
      
 20 
     | 
    
         
            +
                    #   then the second block is processed, etc.
         
     | 
| 
      
 21 
     | 
    
         
            +
                    #
         
     | 
| 
      
 22 
     | 
    
         
            +
                    # @param [Proc] &delegate delgegate block
         
     | 
| 
      
 23 
     | 
    
         
            +
                    #
         
     | 
| 
      
 24 
     | 
    
         
            +
                    #
         
     | 
| 
      
 25 
     | 
    
         
            +
                    def item_delegate(&delegate)
         
     | 
| 
      
 26 
     | 
    
         
            +
                      @delegates ||= []
         
     | 
| 
      
 27 
     | 
    
         
            +
                      @delegates << delegate
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                    #
         
     | 
| 
      
 31 
     | 
    
         
            +
                    # Delegate missing method calls to delegates supplied to item_delgate method
         
     | 
| 
      
 32 
     | 
    
         
            +
                    #  if no delegates exist or respond to missing method, super is invoked which will
         
     | 
| 
      
 33 
     | 
    
         
            +
                    #  throw the appropriate method missing error
         
     | 
| 
      
 34 
     | 
    
         
            +
                    #
         
     | 
| 
      
 35 
     | 
    
         
            +
                    # @param [String] meth misisng method
         
     | 
| 
      
 36 
     | 
    
         
            +
                    # @param [Array] *args Arguments to the missing method
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # @param [Proc] &block supplied to the missing method
         
     | 
| 
      
 38 
     | 
    
         
            +
                    #
         
     | 
| 
      
 39 
     | 
    
         
            +
                    # @return [Object] Result of missing method invocation
         
     | 
| 
      
 40 
     | 
    
         
            +
                    #
         
     | 
| 
      
 41 
     | 
    
         
            +
                    def method_missing(meth, *args, &block)
         
     | 
| 
      
 42 
     | 
    
         
            +
                      logger.trace("Method (#{meth}) missing for item #{self.class}")
         
     | 
| 
      
 43 
     | 
    
         
            +
                      delegate = delegate_for(meth)
         
     | 
| 
      
 44 
     | 
    
         
            +
                      if delegate
         
     | 
| 
      
 45 
     | 
    
         
            +
                        logger.trace("Delegating #{meth} to #{delegate.class}")
         
     | 
| 
      
 46 
     | 
    
         
            +
                        delegate.__send__(meth, *args, &block)
         
     | 
| 
      
 47 
     | 
    
         
            +
                      else
         
     | 
| 
      
 48 
     | 
    
         
            +
                        super
         
     | 
| 
      
 49 
     | 
    
         
            +
                      end
         
     | 
| 
      
 50 
     | 
    
         
            +
                    end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    #
         
     | 
| 
      
 53 
     | 
    
         
            +
                    # Checks if any of the supplied delgates respond to a specific method
         
     | 
| 
      
 54 
     | 
    
         
            +
                    #
         
     | 
| 
      
 55 
     | 
    
         
            +
                    # @param [String] meth method to check for
         
     | 
| 
      
 56 
     | 
    
         
            +
                    # @param [Boolean] _include_private if private methods should be checked
         
     | 
| 
      
 57 
     | 
    
         
            +
                    #
         
     | 
| 
      
 58 
     | 
    
         
            +
                    # @return [Boolean] True if any delegates respond to method, false otherwise
         
     | 
| 
      
 59 
     | 
    
         
            +
                    #
         
     | 
| 
      
 60 
     | 
    
         
            +
                    def respond_to_missing?(meth, _include_private = false)
         
     | 
| 
      
 61 
     | 
    
         
            +
                      logger.trace("Checking if (#{self.class}) responds to (#{meth})")
         
     | 
| 
      
 62 
     | 
    
         
            +
                      responds = !delegate_for(meth).nil?
         
     | 
| 
      
 63 
     | 
    
         
            +
                      logger.trace("(#{self.class}) responds to (#{meth}) (#{responds})")
         
     | 
| 
      
 64 
     | 
    
         
            +
                      responds
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    private
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                    #
         
     | 
| 
      
 70 
     | 
    
         
            +
                    # Find a delegate for the supplied method
         
     | 
| 
      
 71 
     | 
    
         
            +
                    #
         
     | 
| 
      
 72 
     | 
    
         
            +
                    # @param [String] meth method to find delegate for
         
     | 
| 
      
 73 
     | 
    
         
            +
                    #
         
     | 
| 
      
 74 
     | 
    
         
            +
                    # @return [Boolean] True if any method responds to the supplied delegate, false otherwise
         
     | 
| 
      
 75 
     | 
    
         
            +
                    #
         
     | 
| 
      
 76 
     | 
    
         
            +
                    def delegate_for(meth)
         
     | 
| 
      
 77 
     | 
    
         
            +
                      (@delegates || []).each do |delegate_block|
         
     | 
| 
      
 78 
     | 
    
         
            +
                        delegate = delegate_block.call(meth)
         
     | 
| 
      
 79 
     | 
    
         
            +
                        logger.trace("Checking if delegate (#{delegate.class}) responds to (#{meth})")
         
     | 
| 
      
 80 
     | 
    
         
            +
                        if delegate.respond_to? meth
         
     | 
| 
      
 81 
     | 
    
         
            +
                          logger.trace("Delegate (#{delegate.class}) found for method (#{meth})")
         
     | 
| 
      
 82 
     | 
    
         
            +
                          return delegate
         
     | 
| 
      
 83 
     | 
    
         
            +
                        end
         
     | 
| 
      
 84 
     | 
    
         
            +
                      end
         
     | 
| 
      
 85 
     | 
    
         
            +
                      logger.trace("No delegate found for method (#{meth})")
         
     | 
| 
      
 86 
     | 
    
         
            +
                      nil
         
     | 
| 
      
 87 
     | 
    
         
            +
                    end
         
     | 
| 
      
 88 
     | 
    
         
            +
                  end
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
              end
         
     | 
| 
      
 91 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,6 +4,7 @@ require 'bigdecimal' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require 'forwardable'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'java'
         
     | 
| 
       6 
6 
     | 
    
         
             
            require 'openhab/dsl/types/quantity'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'openhab/dsl/items/item_delegate'
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
9 
     | 
    
         
             
            module OpenHAB
         
     | 
| 
       9 
10 
     | 
    
         
             
              module DSL
         
     | 
| 
         @@ -17,6 +18,8 @@ module OpenHAB 
     | 
|
| 
       17 
18 
     | 
    
         
             
                  class NumberItem < Numeric
         
     | 
| 
       18 
19 
     | 
    
         
             
                    extend Forwardable
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
                    include OpenHAB::DSL::Items::ItemDelegate
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       20 
23 
     | 
    
         
             
                    def_delegator :@number_item, :to_s
         
     | 
| 
       21 
24 
     | 
    
         | 
| 
       22 
25 
     | 
    
         
             
                    java_import org.openhab.core.library.types.DecimalType
         
     | 
| 
         @@ -31,6 +34,7 @@ module OpenHAB 
     | 
|
| 
       31 
34 
     | 
    
         
             
                    #
         
     | 
| 
       32 
35 
     | 
    
         
             
                    def initialize(number_item)
         
     | 
| 
       33 
36 
     | 
    
         
             
                      @number_item = number_item
         
     | 
| 
      
 37 
     | 
    
         
            +
                      item_delegate { @number_item }
         
     | 
| 
       34 
38 
     | 
    
         
             
                      super()
         
     | 
| 
       35 
39 
     | 
    
         
             
                    end
         
     | 
| 
       36 
40 
     | 
    
         | 
| 
         @@ -146,40 +150,6 @@ module OpenHAB 
     | 
|
| 
       146 
150 
     | 
    
         
             
                      @number_item.dimension
         
     | 
| 
       147 
151 
     | 
    
         
             
                    end
         
     | 
| 
       148 
152 
     | 
    
         | 
| 
       149 
     | 
    
         
            -
                    #
         
     | 
| 
       150 
     | 
    
         
            -
                    # Forward missing methods to Openhab Number Item if they are defined
         
     | 
| 
       151 
     | 
    
         
            -
                    #
         
     | 
| 
       152 
     | 
    
         
            -
                    # @param [String] meth method name
         
     | 
| 
       153 
     | 
    
         
            -
                    # @param [Array] args arguments for method
         
     | 
| 
       154 
     | 
    
         
            -
                    # @param [Proc] block <description>
         
     | 
| 
       155 
     | 
    
         
            -
                    #
         
     | 
| 
       156 
     | 
    
         
            -
                    # @return [Object] Value from delegated method in OpenHAB NumberItem
         
     | 
| 
       157 
     | 
    
         
            -
                    #
         
     | 
| 
       158 
     | 
    
         
            -
                    def method_missing(meth, *args, &block)
         
     | 
| 
       159 
     | 
    
         
            -
                      logger.trace("Method missing, performing dynamic lookup for: #{meth}")
         
     | 
| 
       160 
     | 
    
         
            -
                      if @number_item.respond_to?(meth)
         
     | 
| 
       161 
     | 
    
         
            -
                        @number_item.__send__(meth, *args, &block)
         
     | 
| 
       162 
     | 
    
         
            -
                      elsif ::Kernel.method_defined?(meth) || ::Kernel.private_method_defined?(meth)
         
     | 
| 
       163 
     | 
    
         
            -
                        ::Kernel.instance_method(meth).bind_call(self, *args, &block)
         
     | 
| 
       164 
     | 
    
         
            -
                      else
         
     | 
| 
       165 
     | 
    
         
            -
                        super(meth, *args, &block)
         
     | 
| 
       166 
     | 
    
         
            -
                      end
         
     | 
| 
       167 
     | 
    
         
            -
                    end
         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
                    #
         
     | 
| 
       170 
     | 
    
         
            -
                    # Checks if this method responds to the missing method
         
     | 
| 
       171 
     | 
    
         
            -
                    #
         
     | 
| 
       172 
     | 
    
         
            -
                    # @param [String] method_name Name of the method to check
         
     | 
| 
       173 
     | 
    
         
            -
                    # @param [Boolean] _include_private boolean if private methods should be checked
         
     | 
| 
       174 
     | 
    
         
            -
                    #
         
     | 
| 
       175 
     | 
    
         
            -
                    # @return [Boolean] true if this object will respond to the supplied method, false otherwise
         
     | 
| 
       176 
     | 
    
         
            -
                    #
         
     | 
| 
       177 
     | 
    
         
            -
                    def respond_to_missing?(method_name, _include_private = false)
         
     | 
| 
       178 
     | 
    
         
            -
                      @number_item.respond_to?(method_name) ||
         
     | 
| 
       179 
     | 
    
         
            -
                        ::Kernel.method_defined?(method_name) ||
         
     | 
| 
       180 
     | 
    
         
            -
                        ::Kernel.private_method_defined?(method_name)
         
     | 
| 
       181 
     | 
    
         
            -
                    end
         
     | 
| 
       182 
     | 
    
         
            -
             
     | 
| 
       183 
153 
     | 
    
         
             
                    %w[+ - * /].each do |operation|
         
     | 
| 
       184 
154 
     | 
    
         
             
                      define_method(operation) do |other|
         
     | 
| 
       185 
155 
     | 
    
         
             
                        logger.trace("Execution math operation '#{operation}' on #{inspect} with #{other.inspect}")
         
     | 
| 
         @@ -3,6 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'forwardable'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'java'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'openhab/dsl/items/item_command'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'openhab/dsl/items/item_delegate'
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
            module OpenHAB
         
     | 
| 
       8 
9 
     | 
    
         
             
              module DSL
         
     | 
| 
         @@ -13,6 +14,7 @@ module OpenHAB 
     | 
|
| 
       13 
14 
     | 
    
         
             
                  class RollershutterItem < Numeric
         
     | 
| 
       14 
15 
     | 
    
         
             
                    extend Forwardable
         
     | 
| 
       15 
16 
     | 
    
         
             
                    extend OpenHAB::DSL::Items::ItemCommand
         
     | 
| 
      
 17 
     | 
    
         
            +
                    include OpenHAB::DSL::Items::ItemDelegate
         
     | 
| 
       16 
18 
     | 
    
         
             
                    include Comparable
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
20 
     | 
    
         
             
                    def_delegator :@rollershutter_item, :to_s
         
     | 
| 
         @@ -35,6 +37,9 @@ module OpenHAB 
     | 
|
| 
       35 
37 
     | 
    
         
             
                      logger.trace("Wrapping #{rollershutter_item}")
         
     | 
| 
       36 
38 
     | 
    
         
             
                      @rollershutter_item = rollershutter_item
         
     | 
| 
       37 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
                      item_delegate { @rollershutter_item }
         
     | 
| 
      
 41 
     | 
    
         
            +
                      item_delegate { position }
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       38 
43 
     | 
    
         
             
                      super()
         
     | 
| 
       39 
44 
     | 
    
         
             
                    end
         
     | 
| 
       40 
45 
     | 
    
         | 
| 
         @@ -79,19 +84,6 @@ module OpenHAB 
     | 
|
| 
       79 
84 
     | 
    
         
             
                      end
         
     | 
| 
       80 
85 
     | 
    
         
             
                    end
         
     | 
| 
       81 
86 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                    #
         
     | 
| 
       83 
     | 
    
         
            -
                    # Case equality
         
     | 
| 
       84 
     | 
    
         
            -
                    #
         
     | 
| 
       85 
     | 
    
         
            -
                    # @param [Java::OrgOpenhabCoreLibraryTypes::UpDownType, Numeric] other Other object to compare against
         
     | 
| 
       86 
     | 
    
         
            -
                    #
         
     | 
| 
       87 
     | 
    
         
            -
                    # @return [Boolean] true if self can be defined as other, false otherwise
         
     | 
| 
       88 
     | 
    
         
            -
                    #
         
     | 
| 
       89 
     | 
    
         
            -
                    def ===(other)
         
     | 
| 
       90 
     | 
    
         
            -
                      super unless other.is_a? UpDownType
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                      state.as(UpDownType).equals(other)
         
     | 
| 
       93 
     | 
    
         
            -
                    end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
87 
     | 
    
         
             
                    #
         
     | 
| 
       96 
88 
     | 
    
         
             
                    # Define math operations
         
     | 
| 
       97 
89 
     | 
    
         
             
                    #
         
     | 
| 
         @@ -101,38 +93,6 @@ module OpenHAB 
     | 
|
| 
       101 
93 
     | 
    
         
             
                        left.send(operator, right)
         
     | 
| 
       102 
94 
     | 
    
         
             
                      end
         
     | 
| 
       103 
95 
     | 
    
         
             
                    end
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
                    #
         
     | 
| 
       106 
     | 
    
         
            -
                    # Checks if this method responds to the missing method
         
     | 
| 
       107 
     | 
    
         
            -
                    #
         
     | 
| 
       108 
     | 
    
         
            -
                    # @param [String] meth Name of the method to check
         
     | 
| 
       109 
     | 
    
         
            -
                    # @param [Boolean] _include_private boolean if private methods should be checked
         
     | 
| 
       110 
     | 
    
         
            -
                    #
         
     | 
| 
       111 
     | 
    
         
            -
                    # @return [Boolean] true if this object will respond to the supplied method, false otherwise
         
     | 
| 
       112 
     | 
    
         
            -
                    #
         
     | 
| 
       113 
     | 
    
         
            -
                    def respond_to_missing?(meth, _include_private = false)
         
     | 
| 
       114 
     | 
    
         
            -
                      @rollershutter_item.respond_to?(meth) || position.respond_to?(meth)
         
     | 
| 
       115 
     | 
    
         
            -
                    end
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
                    #
         
     | 
| 
       118 
     | 
    
         
            -
                    # Forward missing methods to Openhab RollershutterItem or the PercentType representing it's state
         
     | 
| 
       119 
     | 
    
         
            -
                    #   if they are defined
         
     | 
| 
       120 
     | 
    
         
            -
                    #
         
     | 
| 
       121 
     | 
    
         
            -
                    # @param [String] meth method name
         
     | 
| 
       122 
     | 
    
         
            -
                    # @param [Array] args arguments for method
         
     | 
| 
       123 
     | 
    
         
            -
                    # @param [Proc] block <description>
         
     | 
| 
       124 
     | 
    
         
            -
                    #
         
     | 
| 
       125 
     | 
    
         
            -
                    # @return [Object] Value from delegated method in OpenHAB NumberItem
         
     | 
| 
       126 
     | 
    
         
            -
                    #
         
     | 
| 
       127 
     | 
    
         
            -
                    def method_missing(meth, *args, &block)
         
     | 
| 
       128 
     | 
    
         
            -
                      if @rollershutter_item.respond_to?(meth)
         
     | 
| 
       129 
     | 
    
         
            -
                        @rollershutter_item.__send__(meth, *args, &block)
         
     | 
| 
       130 
     | 
    
         
            -
                      elsif position.respond_to?(meth)
         
     | 
| 
       131 
     | 
    
         
            -
                        position.__send__(meth, *args, &block)
         
     | 
| 
       132 
     | 
    
         
            -
                      else
         
     | 
| 
       133 
     | 
    
         
            -
                        raise NoMethodError, "No method `#{meth}' defined for #{self.class}"
         
     | 
| 
       134 
     | 
    
         
            -
                      end
         
     | 
| 
       135 
     | 
    
         
            -
                    end
         
     | 
| 
       136 
96 
     | 
    
         
             
                  end
         
     | 
| 
       137 
97 
     | 
    
         
             
                end
         
     | 
| 
       138 
98 
     | 
    
         
             
              end
         
     | 
| 
         @@ -3,6 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'bigdecimal'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'forwardable'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'java'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'openhab/dsl/items/item_delegate'
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
            module OpenHAB
         
     | 
| 
       8 
9 
     | 
    
         
             
              module DSL
         
     | 
| 
         @@ -12,7 +13,9 @@ module OpenHAB 
     | 
|
| 
       12 
13 
     | 
    
         
             
                  #
         
     | 
| 
       13 
14 
     | 
    
         
             
                  class StringItem
         
     | 
| 
       14 
15 
     | 
    
         
             
                    extend Forwardable
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       15 
17 
     | 
    
         
             
                    include Comparable
         
     | 
| 
      
 18 
     | 
    
         
            +
                    include OpenHAB::DSL::Items::ItemDelegate
         
     | 
| 
       16 
19 
     | 
    
         | 
| 
       17 
20 
     | 
    
         
             
                    # @return [Regex] Regular expression matching blank strings
         
     | 
| 
       18 
21 
     | 
    
         
             
                    BLANK_RE = /\A[[:space:]]*\z/.freeze
         
     | 
| 
         @@ -27,6 +30,10 @@ module OpenHAB 
     | 
|
| 
       27 
30 
     | 
    
         
             
                    #
         
     | 
| 
       28 
31 
     | 
    
         
             
                    def initialize(string_item)
         
     | 
| 
       29 
32 
     | 
    
         
             
                      @string_item = string_item
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                      item_delegate { @string_item }
         
     | 
| 
      
 35 
     | 
    
         
            +
                      item_delegate { @string_item.state&.to_full_string&.to_s }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
       30 
37 
     | 
    
         
             
                      super()
         
     | 
| 
       31 
38 
     | 
    
         
             
                    end
         
     | 
| 
       32 
39 
     | 
    
         | 
| 
         @@ -78,42 +85,6 @@ module OpenHAB 
     | 
|
| 
       78 
85 
     | 
    
         
             
                        @string_item.state <=> other
         
     | 
| 
       79 
86 
     | 
    
         
             
                      end
         
     | 
| 
       80 
87 
     | 
    
         
             
                    end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                    #
         
     | 
| 
       83 
     | 
    
         
            -
                    # Forward missing methods to Openhab String Item or String representation of the item if they are defined
         
     | 
| 
       84 
     | 
    
         
            -
                    #
         
     | 
| 
       85 
     | 
    
         
            -
                    # @param [String] meth method name
         
     | 
| 
       86 
     | 
    
         
            -
                    # @param [Array] args arguments for method
         
     | 
| 
       87 
     | 
    
         
            -
                    # @param [Proc] block <description>
         
     | 
| 
       88 
     | 
    
         
            -
                    #
         
     | 
| 
       89 
     | 
    
         
            -
                    # @return [Object] Value from delegated method in OpenHAB StringItem or Ruby String
         
     | 
| 
       90 
     | 
    
         
            -
                    #
         
     | 
| 
       91 
     | 
    
         
            -
                    def method_missing(meth, *args, &block)
         
     | 
| 
       92 
     | 
    
         
            -
                      if @string_item.respond_to?(meth)
         
     | 
| 
       93 
     | 
    
         
            -
                        @string_item.__send__(meth, *args, &block)
         
     | 
| 
       94 
     | 
    
         
            -
                      elsif @string_item.state&.to_full_string&.to_s.respond_to?(meth)
         
     | 
| 
       95 
     | 
    
         
            -
                        @string_item.state.to_full_string.to_s.__send__(meth, *args, &block)
         
     | 
| 
       96 
     | 
    
         
            -
                      elsif ::Kernel.method_defined?(meth) || ::Kernel.private_method_defined?(meth)
         
     | 
| 
       97 
     | 
    
         
            -
                        ::Kernel.instance_method(meth).bind_call(self, *args, &block)
         
     | 
| 
       98 
     | 
    
         
            -
                      else
         
     | 
| 
       99 
     | 
    
         
            -
                        super(meth, *args, &block)
         
     | 
| 
       100 
     | 
    
         
            -
                      end
         
     | 
| 
       101 
     | 
    
         
            -
                    end
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
                    #
         
     | 
| 
       104 
     | 
    
         
            -
                    # Checks if this method responds to the missing method
         
     | 
| 
       105 
     | 
    
         
            -
                    #
         
     | 
| 
       106 
     | 
    
         
            -
                    # @param [String] method_name Name of the method to check
         
     | 
| 
       107 
     | 
    
         
            -
                    # @param [Boolean] _include_private boolean if private methods should be checked
         
     | 
| 
       108 
     | 
    
         
            -
                    #
         
     | 
| 
       109 
     | 
    
         
            -
                    # @return [Boolean] true if this object will respond to the supplied method, false otherwise
         
     | 
| 
       110 
     | 
    
         
            -
                    #
         
     | 
| 
       111 
     | 
    
         
            -
                    def respond_to_missing?(method_name, _include_private = false)
         
     | 
| 
       112 
     | 
    
         
            -
                      @string_item.respond_to?(method_name) ||
         
     | 
| 
       113 
     | 
    
         
            -
                        @string_item.state&.to_full_string&.to_s.respond_to?(method_name) ||
         
     | 
| 
       114 
     | 
    
         
            -
                        ::Kernel.method_defined?(method_name) ||
         
     | 
| 
       115 
     | 
    
         
            -
                        ::Kernel.private_method_defined?(method_name)
         
     | 
| 
       116 
     | 
    
         
            -
                    end
         
     | 
| 
       117 
88 
     | 
    
         
             
                  end
         
     | 
| 
       118 
89 
     | 
    
         
             
                end
         
     | 
| 
       119 
90 
     | 
    
         
             
              end
         
     | 
| 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require 'java'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'openhab/dsl/items/item_command'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'forwardable'
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            module OpenHAB
         
     | 
| 
       6 
8 
     | 
    
         
             
              module DSL
         
     | 
| 
         @@ -25,31 +27,13 @@ module OpenHAB 
     | 
|
| 
       25 
27 
     | 
    
         
             
                      java_import Java::OrgOpenhabCoreLibraryTypes::DecimalType
         
     | 
| 
       26 
28 
     | 
    
         
             
                      java_import Java::OrgOpenhabCoreLibraryTypes::IncreaseDecreaseType
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                       
     | 
| 
       29 
     | 
    
         
            -
                       
     | 
| 
       30 
     | 
    
         
            -
                      #
         
     | 
| 
       31 
     | 
    
         
            -
                      # @param [Object] other object to add the dimmer value to
         
     | 
| 
       32 
     | 
    
         
            -
                      #
         
     | 
| 
       33 
     | 
    
         
            -
                      # @return [Integer] Current dimmer value plus value of supplied object
         
     | 
| 
       34 
     | 
    
         
            -
                      #
         
     | 
| 
       35 
     | 
    
         
            -
                      def +(other)
         
     | 
| 
       36 
     | 
    
         
            -
                        return unless state?
         
     | 
| 
      
 30 
     | 
    
         
            +
                      extend Forwardable
         
     | 
| 
      
 31 
     | 
    
         
            +
                      extend OpenHAB::DSL::Items::ItemCommand
         
     | 
| 
       37 
32 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                       
     | 
| 
      
 33 
     | 
    
         
            +
                      item_state Java::OrgOpenhabCoreLibraryTypes::OnOffType
         
     | 
| 
      
 34 
     | 
    
         
            +
                      item_command Java::OrgOpenhabCoreLibraryTypes::IncreaseDecreaseType
         
     | 
| 
       40 
35 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                       
     | 
| 
       42 
     | 
    
         
            -
                      # Subtract the supplied object from the current value of the dimmer
         
     | 
| 
       43 
     | 
    
         
            -
                      #
         
     | 
| 
       44 
     | 
    
         
            -
                      # @param [Object] other object to subtract from the dimmer value
         
     | 
| 
       45 
     | 
    
         
            -
                      #
         
     | 
| 
       46 
     | 
    
         
            -
                      # @return [Integer] Current dimmer value minus value of supplied object
         
     | 
| 
       47 
     | 
    
         
            -
                      #
         
     | 
| 
       48 
     | 
    
         
            -
                      def -(other)
         
     | 
| 
       49 
     | 
    
         
            -
                        return unless state?
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                        state.to_big_decimal.intValue - other
         
     | 
| 
       52 
     | 
    
         
            -
                      end
         
     | 
| 
      
 36 
     | 
    
         
            +
                      def_delegator :state, :to_s
         
     | 
| 
       53 
37 
     | 
    
         | 
| 
       54 
38 
     | 
    
         
             
                      #
         
     | 
| 
       55 
39 
     | 
    
         
             
                      # Dim the dimmer
         
     | 
| 
         @@ -59,17 +43,9 @@ module OpenHAB 
     | 
|
| 
       59 
43 
     | 
    
         
             
                      # @return [Integer] level target for dimmer
         
     | 
| 
       60 
44 
     | 
    
         
             
                      #
         
     | 
| 
       61 
45 
     | 
    
         
             
                      def dim(amount = 1)
         
     | 
| 
       62 
     | 
    
         
            -
                         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                        if amount == 1
         
     | 
| 
       67 
     | 
    
         
            -
                          command(IncreaseDecreaseType::DECREASE)
         
     | 
| 
       68 
     | 
    
         
            -
                        else
         
     | 
| 
       69 
     | 
    
         
            -
                          command(target)
         
     | 
| 
       70 
     | 
    
         
            -
                        end
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                        target
         
     | 
| 
      
 46 
     | 
    
         
            +
                        [state&.to_big_decimal&.intValue&.-(amount), 0].compact
         
     | 
| 
      
 47 
     | 
    
         
            +
                                                                       .max
         
     | 
| 
      
 48 
     | 
    
         
            +
                                                                       .tap { |target| command(target) }
         
     | 
| 
       73 
49 
     | 
    
         
             
                      end
         
     | 
| 
       74 
50 
     | 
    
         | 
| 
       75 
51 
     | 
    
         
             
                      #
         
     | 
| 
         @@ -80,16 +56,7 @@ module OpenHAB 
     | 
|
| 
       80 
56 
     | 
    
         
             
                      # @return [Integer] level target for dimmer
         
     | 
| 
       81 
57 
     | 
    
         
             
                      #
         
     | 
| 
       82 
58 
     | 
    
         
             
                      def brighten(amount = 1)
         
     | 
| 
       83 
     | 
    
         
            -
                         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                        target = state.to_big_decimal.intValue + amount
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                        if amount == 1
         
     | 
| 
       88 
     | 
    
         
            -
                          command(IncreaseDecreaseType::INCREASE)
         
     | 
| 
       89 
     | 
    
         
            -
                        else
         
     | 
| 
       90 
     | 
    
         
            -
                          command(target)
         
     | 
| 
       91 
     | 
    
         
            -
                        end
         
     | 
| 
       92 
     | 
    
         
            -
                        target
         
     | 
| 
      
 59 
     | 
    
         
            +
                        state&.to_big_decimal&.intValue&.+(amount)&.tap { |target| command(target) }
         
     | 
| 
       93 
60 
     | 
    
         
             
                      end
         
     | 
| 
       94 
61 
     | 
    
         | 
| 
       95 
62 
     | 
    
         
             
                      #
         
     | 
| 
         @@ -120,10 +87,8 @@ module OpenHAB 
     | 
|
| 
       120 
87 
     | 
    
         
             
                      def coerce(other)
         
     | 
| 
       121 
88 
     | 
    
         
             
                        logger.trace("Coercing #{self} as a request from  #{other.class}")
         
     | 
| 
       122 
89 
     | 
    
         
             
                        case other
         
     | 
| 
       123 
     | 
    
         
            -
                        when Numeric
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
     | 
    
         
            -
                        else
         
     | 
| 
       126 
     | 
    
         
            -
                          [other, state]
         
     | 
| 
      
 90 
     | 
    
         
            +
                        when Numeric then [other, state.to_big_decimal.to_d]
         
     | 
| 
      
 91 
     | 
    
         
            +
                        else [other, state]
         
     | 
| 
       127 
92 
     | 
    
         
             
                        end
         
     | 
| 
       128 
93 
     | 
    
         
             
                      end
         
     | 
| 
       129 
94 
     | 
    
         | 
| 
         @@ -140,6 +105,16 @@ module OpenHAB 
     | 
|
| 
       140 
105 
     | 
    
         
             
                        (self <=> other).zero?
         
     | 
| 
       141 
106 
     | 
    
         
             
                      end
         
     | 
| 
       142 
107 
     | 
    
         | 
| 
      
 108 
     | 
    
         
            +
                      #
         
     | 
| 
      
 109 
     | 
    
         
            +
                      # Define math operations
         
     | 
| 
      
 110 
     | 
    
         
            +
                      #
         
     | 
| 
      
 111 
     | 
    
         
            +
                      %i[+ - / *].each do |operator|
         
     | 
| 
      
 112 
     | 
    
         
            +
                        define_method(operator) do |other|
         
     | 
| 
      
 113 
     | 
    
         
            +
                          right, left = coerce(other)
         
     | 
| 
      
 114 
     | 
    
         
            +
                          left.send(operator, right)
         
     | 
| 
      
 115 
     | 
    
         
            +
                        end
         
     | 
| 
      
 116 
     | 
    
         
            +
                      end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
       143 
118 
     | 
    
         
             
                      #
         
     | 
| 
       144 
119 
     | 
    
         
             
                      # Check if dimmer has a state and state is not zero
         
     | 
| 
       145 
120 
     | 
    
         
             
                      #
         
     | 
| 
         @@ -159,33 +134,6 @@ module OpenHAB 
     | 
|
| 
       159 
134 
     | 
    
         
             
                      end
         
     | 
| 
       160 
135 
     | 
    
         | 
| 
       161 
136 
     | 
    
         
             
                      alias to_int to_i
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
                      #
         
     | 
| 
       164 
     | 
    
         
            -
                      # Return the string representation of the dimmer item
         
     | 
| 
       165 
     | 
    
         
            -
                      #
         
     | 
| 
       166 
     | 
    
         
            -
                      # @return [String] String version of the dimmer value
         
     | 
| 
       167 
     | 
    
         
            -
                      #
         
     | 
| 
       168 
     | 
    
         
            -
                      def to_s
         
     | 
| 
       169 
     | 
    
         
            -
                        to_i.to_s
         
     | 
| 
       170 
     | 
    
         
            -
                      end
         
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
     | 
    
         
            -
                      #
         
     | 
| 
       173 
     | 
    
         
            -
                      # Check if dimmer is on
         
     | 
| 
       174 
     | 
    
         
            -
                      #
         
     | 
| 
       175 
     | 
    
         
            -
                      # @return [Boolean] True if item is not UNDEF or NULL and has a value greater than 0
         
     | 
| 
       176 
     | 
    
         
            -
                      #
         
     | 
| 
       177 
     | 
    
         
            -
                      def on?
         
     | 
| 
       178 
     | 
    
         
            -
                        state&.to_big_decimal&.intValue&.positive?
         
     | 
| 
       179 
     | 
    
         
            -
                      end
         
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
                      #
         
     | 
| 
       182 
     | 
    
         
            -
                      # Check if dimmer is off
         
     | 
| 
       183 
     | 
    
         
            -
                      #
         
     | 
| 
       184 
     | 
    
         
            -
                      # @return [Boolean] True if item is not UNDEF or NULL and has a state of 0
         
     | 
| 
       185 
     | 
    
         
            -
                      #
         
     | 
| 
       186 
     | 
    
         
            -
                      def off?
         
     | 
| 
       187 
     | 
    
         
            -
                        state&.to_big_decimal&.intValue&.zero?
         
     | 
| 
       188 
     | 
    
         
            -
                      end
         
     | 
| 
       189 
137 
     | 
    
         
             
                    end
         
     | 
| 
       190 
138 
     | 
    
         
             
                  end
         
     | 
| 
       191 
139 
     | 
    
         
             
                end
         
     | 
    
        data/lib/openhab/version.rb
    CHANGED
    
    
    
        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: 2.23. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.23.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Brian O'Connell
         
     | 
| 
         @@ -41,6 +41,7 @@ files: 
     | 
|
| 
       41 
41 
     | 
    
         
             
            - lib/openhab/dsl/group.rb
         
     | 
| 
       42 
42 
     | 
    
         
             
            - lib/openhab/dsl/items/datetime_item.rb
         
     | 
| 
       43 
43 
     | 
    
         
             
            - lib/openhab/dsl/items/item_command.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib/openhab/dsl/items/item_delegate.rb
         
     | 
| 
       44 
45 
     | 
    
         
             
            - lib/openhab/dsl/items/items.rb
         
     | 
| 
       45 
46 
     | 
    
         
             
            - lib/openhab/dsl/items/number_item.rb
         
     | 
| 
       46 
47 
     | 
    
         
             
            - lib/openhab/dsl/items/rollershutter_item.rb
         
     |