hue_bridge 0.1.2 → 0.1.3
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/hue_bridge/light_bulp.rb +37 -2
 - data/lib/hue_bridge/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6f9e1a44e6fa827a1cfe5a7fd5c06778fe8e4558
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: bbcfc1b7e4b9832c52d8aeb5dcf442b899bb3e38
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 233d971542cdcc0c16615c566851e6bc272df87114ca8121983c356806e0c2c1d580461af865c4fea5f54ebd90dc4cb68f8f9b81eaae7aa10c8d00bd7ff53aeb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 7adece19918852d9c86370278985f3dffae0368c6ecaab59623e482ca5399f2a2aa86e5f379779915c6e2dbfe3e4bbfc222ceba3c497b1529226d1858b42e658
         
     | 
| 
         @@ -6,7 +6,9 @@ module HueBridge 
     | 
|
| 
       6 
6 
     | 
    
         
             
              # light on, off and to toggle it.
         
     | 
| 
       7 
7 
     | 
    
         
             
              #
         
     | 
| 
       8 
8 
     | 
    
         
             
              class LightBulp
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                FORBIDDEN_STATS = %w(colormode reachable).freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                attr_reader :power, :state
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
13 
     | 
    
         
             
                # @param [Hash] options LightBulp options
         
     | 
| 
       12 
14 
     | 
    
         
             
                # @option options [String] :hue_bridge_ip The Hue Bridge's IP
         
     | 
| 
         @@ -66,8 +68,34 @@ module HueBridge 
     | 
|
| 
       66 
68 
     | 
    
         
             
                  response_successful?(response)
         
     | 
| 
       67 
69 
     | 
    
         
             
                end
         
     | 
| 
       68 
70 
     | 
    
         | 
| 
      
 71 
     | 
    
         
            +
                # Stores the current state of the lightbulp.
         
     | 
| 
      
 72 
     | 
    
         
            +
                # @return [Boolean] success of the operation
         
     | 
| 
      
 73 
     | 
    
         
            +
                #
         
     | 
| 
      
 74 
     | 
    
         
            +
                def store_state
         
     | 
| 
      
 75 
     | 
    
         
            +
                  response = get
         
     | 
| 
      
 76 
     | 
    
         
            +
                  success = !!(response.body =~ %r(state))
         
     | 
| 
      
 77 
     | 
    
         
            +
                  data = JSON.parse(response.body) if success
         
     | 
| 
      
 78 
     | 
    
         
            +
                  @state = data.fetch('state')
         
     | 
| 
      
 79 
     | 
    
         
            +
                  delete_forbidden_stats
         
     | 
| 
      
 80 
     | 
    
         
            +
                  success
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                # Restores the state of the lightbulp.
         
     | 
| 
      
 84 
     | 
    
         
            +
                # @return [Boolean] success of the operation
         
     | 
| 
      
 85 
     | 
    
         
            +
                #
         
     | 
| 
      
 86 
     | 
    
         
            +
                def restore_state
         
     | 
| 
      
 87 
     | 
    
         
            +
                  response = put('state', state)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  success = !!!(response.body =~ %r(error))
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
       69 
91 
     | 
    
         
             
                private
         
     | 
| 
       70 
92 
     | 
    
         | 
| 
      
 93 
     | 
    
         
            +
                def delete_forbidden_stats
         
     | 
| 
      
 94 
     | 
    
         
            +
                  FORBIDDEN_STATS.each do |attr|
         
     | 
| 
      
 95 
     | 
    
         
            +
                    @state.delete(attr)
         
     | 
| 
      
 96 
     | 
    
         
            +
                  end
         
     | 
| 
      
 97 
     | 
    
         
            +
                end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
       71 
99 
     | 
    
         
             
                def log_error(msg)
         
     | 
| 
       72 
100 
     | 
    
         
             
                  $stderr.puts(msg)
         
     | 
| 
       73 
101 
     | 
    
         
             
                end
         
     | 
| 
         @@ -105,10 +133,17 @@ module HueBridge 
     | 
|
| 
       105 
133 
     | 
    
         
             
                end
         
     | 
| 
       106 
134 
     | 
    
         | 
| 
       107 
135 
     | 
    
         
             
                def put(resource, params)
         
     | 
| 
       108 
     | 
    
         
            -
                  http = Net::HTTP.new(@ip)
         
     | 
| 
       109 
136 
     | 
    
         
             
                  http.request_put("/#{path}/#{resource}", JSON.generate(params))
         
     | 
| 
       110 
137 
     | 
    
         
             
                end
         
     | 
| 
       111 
138 
     | 
    
         | 
| 
      
 139 
     | 
    
         
            +
                def get(resource = '')
         
     | 
| 
      
 140 
     | 
    
         
            +
                  http.request_get("/#{path}/#{resource}")
         
     | 
| 
      
 141 
     | 
    
         
            +
                end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                def http
         
     | 
| 
      
 144 
     | 
    
         
            +
                  @http ||= Net::HTTP.new(@ip)
         
     | 
| 
      
 145 
     | 
    
         
            +
                end
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
       112 
147 
     | 
    
         
             
                def path
         
     | 
| 
       113 
148 
     | 
    
         
             
                  File.join 'api', @user_id, 'lights', @light_bulp_id.to_s
         
     | 
| 
       114 
149 
     | 
    
         
             
                end
         
     | 
    
        data/lib/hue_bridge/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: hue_bridge
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Kristopher Bredemeier
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016-07- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-07-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     |