philips_hue 0.1.8 → 0.1.9

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.
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  ignore
2
2
  *.gem
3
3
  bin/test.rb
4
+ pkg
4
5
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- philips_hue (0.1.8)
4
+ philips_hue (0.1.9)
5
5
  httparty (>= 0.10.0)
6
6
  json (>= 1.6)
7
7
 
@@ -21,6 +21,7 @@ GEM
21
21
  coderay (~> 1.0.5)
22
22
  method_source (~> 0.8)
23
23
  slop (~> 3.4)
24
+ rake (10.0.2)
24
25
  slop (3.4.3)
25
26
 
26
27
  PLATFORMS
@@ -30,3 +31,4 @@ DEPENDENCIES
30
31
  awesome_print
31
32
  philips_hue!
32
33
  pry
34
+ rake
data/lib/philips_hue.rb CHANGED
@@ -3,6 +3,8 @@ require 'httparty'
3
3
  require 'json'
4
4
 
5
5
  require 'philips_hue/version'
6
+ require 'philips_hue/helpers'
7
+
6
8
  require 'philips_hue/bridge'
7
9
  require 'philips_hue/light'
8
10
 
@@ -0,0 +1,78 @@
1
+ module PhilipsHue::Helpers
2
+
3
+ def red
4
+ self.xy = [0.6446, 0.3289]
5
+ end
6
+
7
+ def green
8
+ self.xy = [0.4034, 0.5067]
9
+ end
10
+
11
+ def blue
12
+ self.xy = [0.1727, 0.0512]
13
+ end
14
+
15
+ def yellow
16
+ self.xy = [0.4447, 0.4918]
17
+ end
18
+
19
+ # flash once
20
+ def blip
21
+ self.alert = "select"
22
+ end
23
+
24
+ # flash repeatedly
25
+ def blink
26
+ self.alert = "lselect"
27
+ end
28
+
29
+ # flash a specified color
30
+ # xy is the color to use
31
+ # delay is the length of the flash (in seconds)
32
+ # crazymode causes the light to blink during the flash
33
+ def flash(xy, delay = 1, crazymode = false)
34
+ # use state() and set() to minimize number of API calls
35
+ original = self.state
36
+
37
+ # turns the light on and maxes brightness too
38
+ flash_state = {
39
+ :xy => xy,
40
+ :on => true,
41
+ :bri => 255
42
+ }
43
+
44
+ # blink instead if the color is not going to change
45
+ if xy == original["xy"] && original["colormode"] == "xy"
46
+ flash_state["alert"] = "select"
47
+ end
48
+
49
+ # blink repeatedly if crazymode flag is set
50
+ # (works best for delay >2 seconds)
51
+ flash_state["alert"] = "lselect" if crazymode
52
+
53
+ # the state to which to restore
54
+ # (color gets set after)
55
+ final_state = {
56
+ :on => original["on"],
57
+ :bri => original["bri"],
58
+ :alert => original["alert"]
59
+ }
60
+
61
+ # smartly return to the original color
62
+ case original["colormode"]
63
+ when "xy"
64
+ final_state[:xy] = original["xy"]
65
+ when "ct"
66
+ final_state[:ct] = original["ct"]
67
+ when "hs"
68
+ final_state[:hue] = original["hue"]
69
+ end
70
+
71
+ # flash!
72
+ set(flash_state)
73
+ # zzz...
74
+ sleep delay
75
+ # restore the light to its original state
76
+ set(final_state)
77
+ end
78
+ end
@@ -1,6 +1,8 @@
1
1
  module PhilipsHue
2
2
  class Light
3
3
 
4
+ include Helpers
5
+
4
6
  def initialize(light_name, light_id, api_endpoint, key)
5
7
  @name = light_name
6
8
  @light_id = light_id
@@ -131,86 +133,6 @@ module PhilipsHue
131
133
  state["effect"]
132
134
  end
133
135
 
134
- # cheap helper method
135
- def red
136
- self.xy = [0.6446, 0.3289]
137
- end
138
-
139
- # cheap helper method
140
- def green
141
- self.xy = [0.4034, 0.5067]
142
- end
143
-
144
- # cheap helper method
145
- def blue
146
- self.xy = [0.1727, 0.0512]
147
- end
148
-
149
- # cheap helper method
150
- def yellow
151
- self.xy = [0.4447, 0.4918]
152
- end
153
-
154
- # flash once
155
- def blip
156
- self.alert = "select"
157
- end
158
-
159
- # flash repeatedly
160
- def blink
161
- self.alert = "lselect"
162
- end
163
-
164
- # flash a specified color
165
- # xy is the color to use
166
- # delay is the length of the flash (in seconds)
167
- # crazymode causes the light to blink during the flash
168
- def flash(xy, delay = 1, crazymode = false)
169
- # use state() and set() to minimize number of API calls
170
- original = self.state
171
-
172
- # turns the light on and maxes brightness too
173
- flash_state = {
174
- :xy => xy,
175
- :on => true,
176
- :bri => 255
177
- }
178
-
179
- # blink instead if the color is not going to change
180
- if xy == original["xy"] && original["colormode"] == "xy"
181
- flash_state["alert"] = "select"
182
- end
183
-
184
- # blink repeatedly if crazymode flag is set
185
- # (works best for delay >2 seconds)
186
- flash_state["alert"] = "lselect" if crazymode
187
-
188
- # the state to which to restore
189
- # (color gets set after)
190
- final_state = {
191
- :on => original["on"],
192
- :bri => original["bri"],
193
- :alert => original["alert"]
194
- }
195
-
196
- # smartly return to the original color
197
- case original["colormode"]
198
- when "xy"
199
- final_state[:xy] = original["xy"]
200
- when "ct"
201
- final_state[:ct] = original["ct"]
202
- when "hs"
203
- final_state[:hue] = original["hue"]
204
- end
205
-
206
- # flash!
207
- set(flash_state)
208
- # zzz...
209
- sleep delay
210
- # restore the light to its original state
211
- set(final_state)
212
- end
213
-
214
136
  # handy aliases
215
137
  alias_method :brightness, :bri
216
138
  alias_method :brightness=, :bri=
@@ -1,3 +1,3 @@
1
1
  module PhilipsHue
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
data/philips_hue.gemspec CHANGED
@@ -1,10 +1,11 @@
1
- require File.expand_path('../lib/philips_hue/version', __FILE__)
1
+ $:.push File.expand_path('../lib', __FILE__)
2
+ require 'philips_hue/version'
2
3
 
3
4
  Gem::Specification.new do |s|
4
5
  s.name = 'philips_hue'
5
6
  s.version = PhilipsHue::VERSION
6
7
  s.platform = Gem::Platform::RUBY
7
- s.date = Time.now.utc.strftime("%Y-%m-%d")
8
+ s.date = Time.now.utc.strftime('%Y-%m-%d')
8
9
  s.summary = 'Philips Hue'
9
10
  s.description = 'A library to control and query Philips Hue lights'
10
11
  s.authors = ['Dana Merrick']
@@ -16,5 +17,6 @@ Gem::Specification.new do |s|
16
17
  s.add_runtime_dependency 'json', ['>= 1.6']
17
18
  s.add_development_dependency 'awesome_print'
18
19
  s.add_development_dependency 'pry'
20
+ s.add_development_dependency 'rake'
19
21
  #s.post_install_message = ''
20
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philips_hue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
78
94
  description: A library to control and query Philips Hue lights
79
95
  email: dana.merrick@gmail.com
80
96
  executables: []
@@ -95,6 +111,7 @@ files:
95
111
  - bin/sandbox.rb
96
112
  - lib/philips_hue.rb
97
113
  - lib/philips_hue/bridge.rb
114
+ - lib/philips_hue/helpers.rb
98
115
  - lib/philips_hue/light.rb
99
116
  - lib/philips_hue/version.rb
100
117
  - philips_hue.gemspec
@@ -110,12 +127,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
127
  - - ! '>='
111
128
  - !ruby/object:Gem::Version
112
129
  version: '0'
130
+ segments:
131
+ - 0
132
+ hash: 4383546524838310607
113
133
  required_rubygems_version: !ruby/object:Gem::Requirement
114
134
  none: false
115
135
  requirements:
116
136
  - - ! '>='
117
137
  - !ruby/object:Gem::Version
118
138
  version: '0'
139
+ segments:
140
+ - 0
141
+ hash: 4383546524838310607
119
142
  requirements: []
120
143
  rubyforge_project:
121
144
  rubygems_version: 1.8.24
@@ -123,4 +146,3 @@ signing_key:
123
146
  specification_version: 3
124
147
  summary: Philips Hue
125
148
  test_files: []
126
- has_rdoc: