openhab-scripting 4.19.1 → 4.20.0
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/rules/rule.rb +1 -0
 - data/lib/openhab/dsl/timers/timer.rb +25 -6
 - data/lib/openhab/version.rb +1 -1
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 48c997bfb2b0275d7c7666b905eb1599e020c9d434965d9093613540b77460b1
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a81a610e16bb811762faf1e7317432a86e7c332d7356b1b2bea827d674f1442c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ae48e5f3f7e607c81fd2343a094b88e1b6c2041dc398357401ede48a41f0259f60d7c100afc4e3bd3d5217f635cf0d31e77cf072fbbe2b3871bf4f2d85477d94
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2ad2e05fa15ebc3a6de85ed5de804935d7d48d3b3e6a442dce0846fb0ccf993d07c04d09bed6861d4eb0d1b247a4d20a2d045156f150c9e76105fa7f9a75c361
         
     | 
| 
         @@ -38,6 +38,7 @@ module OpenHAB 
     | 
|
| 
       38 
38 
     | 
    
         
             
                    config.guard = Guard::Guard.new(only_if: config.only_if, not_if: config.not_if)
         
     | 
| 
       39 
39 
     | 
    
         
             
                    logger.trace { config.inspect }
         
     | 
| 
       40 
40 
     | 
    
         
             
                    process_rule_config(config)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    nil # Must return something other than the rule object. See https://github.com/boc-tothefuture/openhab-jruby/issues/438
         
     | 
| 
       41 
42 
     | 
    
         
             
                  rescue StandardError => e
         
     | 
| 
       42 
43 
     | 
    
         
             
                    re_raise_with_backtrace(e)
         
     | 
| 
       43 
44 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -41,7 +41,7 @@ module OpenHAB 
     | 
|
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                      semaphore.synchronize do
         
     | 
| 
       43 
43 
     | 
    
         
             
                        @timer = ScriptExecution.createTimer(
         
     | 
| 
       44 
     | 
    
         
            -
                          ZonedDateTime.now.plus(@duration), timer_block(semaphore, &block)
         
     | 
| 
      
 44 
     | 
    
         
            +
                          ZonedDateTime.now.plus(to_duration(@duration)), timer_block(semaphore, &block)
         
     | 
| 
       45 
45 
     | 
    
         
             
                        )
         
     | 
| 
       46 
46 
     | 
    
         
             
                        @rule_timers = Thread.current[:rule_timers]
         
     | 
| 
       47 
47 
     | 
    
         
             
                        super(@timer)
         
     | 
| 
         @@ -57,15 +57,13 @@ module OpenHAB 
     | 
|
| 
       57 
57 
     | 
    
         
             
                    # @return [Timer] Rescheduled timer instances
         
     | 
| 
       58 
58 
     | 
    
         
             
                    #
         
     | 
| 
       59 
59 
     | 
    
         
             
                    def reschedule(duration = nil)
         
     | 
| 
       60 
     | 
    
         
            -
                      unless duration.nil? || duration.is_a?(Java::JavaTimeTemporal::TemporalAmount)
         
     | 
| 
       61 
     | 
    
         
            -
                        raise ArgumentError, 'Supplied argument must be a duration'
         
     | 
| 
       62 
     | 
    
         
            -
                      end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
60 
     | 
    
         
             
                      duration ||= @duration
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       65 
62 
     | 
    
         
             
                      Timers.timer_manager.add(self)
         
     | 
| 
       66 
     | 
    
         
            -
                      @timer.reschedule(ZonedDateTime.now.plus(duration))
         
     | 
| 
      
 63 
     | 
    
         
            +
                      @timer.reschedule(ZonedDateTime.now.plus(to_duration(duration)))
         
     | 
| 
       67 
64 
     | 
    
         
             
                    end
         
     | 
| 
       68 
65 
     | 
    
         | 
| 
      
 66 
     | 
    
         
            +
                    #
         
     | 
| 
       69 
67 
     | 
    
         
             
                    # Cancel timer
         
     | 
| 
       70 
68 
     | 
    
         
             
                    #
         
     | 
| 
       71 
69 
     | 
    
         
             
                    # @return [Boolean] True if cancel was successful, false otherwise
         
     | 
| 
         @@ -92,6 +90,27 @@ module OpenHAB 
     | 
|
| 
       92 
90 
     | 
    
         
             
                        end
         
     | 
| 
       93 
91 
     | 
    
         
             
                      }
         
     | 
| 
       94 
92 
     | 
    
         
             
                    end
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                    #
         
     | 
| 
      
 95 
     | 
    
         
            +
                    # Convert argument to a duration
         
     | 
| 
      
 96 
     | 
    
         
            +
                    #
         
     | 
| 
      
 97 
     | 
    
         
            +
                    # @params [Java::JavaTimeTemporal::TemporalAmount, #to_f, #to_i, nil] duration Duration
         
     | 
| 
      
 98 
     | 
    
         
            +
                    #
         
     | 
| 
      
 99 
     | 
    
         
            +
                    # @raise if duration cannot be used for a timer
         
     | 
| 
      
 100 
     | 
    
         
            +
                    #
         
     | 
| 
      
 101 
     | 
    
         
            +
                    # @return Argument converted to seconds if it responds to #to_f or #to_i, otherwise duration unchanged
         
     | 
| 
      
 102 
     | 
    
         
            +
                    #
         
     | 
| 
      
 103 
     | 
    
         
            +
                    def to_duration(duration)
         
     | 
| 
      
 104 
     | 
    
         
            +
                      if duration.nil? || duration.is_a?(Java::JavaTimeTemporal::TemporalAmount)
         
     | 
| 
      
 105 
     | 
    
         
            +
                        duration
         
     | 
| 
      
 106 
     | 
    
         
            +
                      elsif duration.respond_to?(:to_f)
         
     | 
| 
      
 107 
     | 
    
         
            +
                        duration.to_f.seconds
         
     | 
| 
      
 108 
     | 
    
         
            +
                      elsif duration.respond_to?(:to_i)
         
     | 
| 
      
 109 
     | 
    
         
            +
                        duration.to_i.seconds
         
     | 
| 
      
 110 
     | 
    
         
            +
                      else
         
     | 
| 
      
 111 
     | 
    
         
            +
                        raise ArgumentError, "Supplied argument '#{duration}' cannot be converted to a duration"
         
     | 
| 
      
 112 
     | 
    
         
            +
                      end
         
     | 
| 
      
 113 
     | 
    
         
            +
                    end
         
     | 
| 
       95 
114 
     | 
    
         
             
                  end
         
     | 
| 
       96 
115 
     | 
    
         
             
                end
         
     | 
| 
       97 
116 
     | 
    
         
             
              end
         
     | 
    
        data/lib/openhab/version.rb
    CHANGED