blinkenlights 0.0.1 → 0.0.2

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/CHANGES ADDED
@@ -0,0 +1,3 @@
1
+ 2005-10-18 * Some small bugs fixed
2
+ * flash method added
3
+ * additional example
data/README.en CHANGED
@@ -27,9 +27,8 @@ $ ruby make_doc.rb
27
27
  and the API documentation is generated by your rdoc command in
28
28
  the doc/ sub-directory.
29
29
 
30
- In the examples direcotry is a small example that shows, how to let the lights
31
- blink, if network packets were received. You very likely have to run it as
32
- root.
30
+ Some small examples can be found in the examples directory of the distribution
31
+ directory. You very likely have to run it as root.
33
32
 
34
33
  Author
35
34
  ======
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'blinkenlights'
4
+ include BlinkenLights::Constants
5
+
6
+ proc_loadavg = '/proc/loadavg'
7
+
8
+ bl = BlinkenLights.new
9
+ trap(:INT) do
10
+ bl.close if bl
11
+ exit
12
+ end
13
+
14
+ bl.off
15
+ loop do
16
+ loadavg = File.read(proc_loadavg).scan(/\d+\.\d+/)[0].to_f
17
+ case loadavg
18
+ when 0.00..0.25 then bl.digital = 0
19
+ when 0.25..0.50 then bl.digital = LED_LEFT
20
+ when 0.50..0.75 then bl.digital = LED_LEFT | LED_MIDDLE
21
+ when 0.75..1.00 then bl.digital = LED_LEFT | LED_MIDDLE | LED_RIGHT
22
+ else bl.flash
23
+ end
24
+ end
@@ -23,7 +23,7 @@ loop do
23
23
  when [ true, true ] then LED_LEFT | LED_RIGHT
24
24
  when [ false, true ] then LED_RIGHT
25
25
  when [ true, false ] then LED_LEFT
26
- else 0
26
+ else 0
27
27
  end
28
28
  old_rx, old_tx = rx, tx
29
29
  end
@@ -46,9 +46,10 @@
46
46
  # 100.times { bl.random }
47
47
  # bl.close
48
48
  #
49
- # There's also a short example examples/netblinker.rb in the distribution
50
- # directory of this library, that shows how to let the lights blink if network
51
- # packets are received/transmitted on your host.
49
+ # There's also two short examples examples/netblinker.rb and
50
+ # examples/loadbar.rb in the distribution directory of this library, that show
51
+ # how to let the lights blink if network packets are received/transmitted on
52
+ # your host or how high the cpu load average is.
52
53
  class BlinkenLights
53
54
 
54
55
  # Module to hold the BlinkenLights constants.
@@ -94,6 +95,12 @@ class BlinkenLights
94
95
 
95
96
  # The right LED
96
97
  LED_RIGHT = 1
98
+
99
+ # None of the LEDs
100
+ LED_NONE = 0
101
+
102
+ # All of the LEDs
103
+ LED_ALL = 7
97
104
  end
98
105
  include Constants
99
106
 
@@ -135,16 +142,24 @@ class BlinkenLights
135
142
 
136
143
  # Switch off all LEDs.
137
144
  def off
138
- set 0
145
+ set LED_NONE
139
146
  self
140
147
  end
141
148
 
142
149
  # Switch on all LEDs.
143
150
  def on
144
- set 7
151
+ set LED_ALL
145
152
  self
146
153
  end
147
154
 
155
+ # First switches all LEDs on, then off. Sleep for _delay_ seconds after
156
+ # switching them on.
157
+ def flash(delay = 0.0)
158
+ on
159
+ sleep delay
160
+ off
161
+ end
162
+
148
163
  # Set LEDs to _number_ in binary digital mode.
149
164
  def digital=(number)
150
165
  number %= 8
@@ -207,7 +222,7 @@ class BlinkenLights
207
222
 
208
223
  # Switch some of the LEDs on by random. Then sleep for _delay_ seconds.
209
224
  def random(delay = 0.0)
210
- self.digital = rand(8)
225
+ self.digital = rand(LED_ALL + 1)
211
226
  sleep delay
212
227
  self
213
228
  end
@@ -235,7 +250,7 @@ class BlinkenLights
235
250
  # Return the state of the Scroll Lock LED: true for switched on, false for
236
251
  # off.
237
252
  def scr
238
- (get & LED_SCR) != 0
253
+ (get & LED_SCR) != LED_NONE
239
254
  end
240
255
 
241
256
  # Switch the Scroll Lock LED on, if _toggle_ is true, off, otherwise.
@@ -252,13 +267,13 @@ class BlinkenLights
252
267
  # LED off, if it was on before.
253
268
  def toggle_scr(delay = 0.0)
254
269
  self.scr = !scr
255
- sleep 0.0
270
+ sleep delay
256
271
  self
257
272
  end
258
273
 
259
274
  # Return the state of the Caps Lock LED: true for switched on, false for off.
260
275
  def cap
261
- (get & LED_CAP) != 0
276
+ (get & LED_CAP) != LED_NONE
262
277
  end
263
278
 
264
279
  # Switch the Caps Lock LED on, if _toggle_ is true, off, otherwise.
@@ -281,7 +296,7 @@ class BlinkenLights
281
296
 
282
297
  # Return the state of the Num Lock LED: true for switched on, false for off.
283
298
  def num
284
- (get & LED_NUM) != 0
299
+ (get & LED_NUM) != LED_NONE
285
300
  end
286
301
 
287
302
  # Switch the Num Lock LED on, if _toggle_ is true, off, otherwise.
@@ -304,7 +319,7 @@ class BlinkenLights
304
319
  # Return the state of the left LED: true for switched on, false for
305
320
  # off.
306
321
  def left
307
- (digital & LED_LEFT) != 0
322
+ (digital & LED_LEFT) != LED_NONE
308
323
  end
309
324
 
310
325
  # Switch the left LED on, if _toggle_ is true, off, otherwise.
@@ -321,13 +336,13 @@ class BlinkenLights
321
336
  # LED off, if it was on before.
322
337
  def toggle_left(delay = 0.0)
323
338
  self.left = !left
324
- sleep 0.0
339
+ sleep delay
325
340
  self
326
341
  end
327
342
 
328
343
  # Return the state of the middle LED: true for switched on, false for off.
329
344
  def middle
330
- (digital & LED_MIDDLE) != 0
345
+ (digital & LED_MIDDLE) != LED_NONE
331
346
  end
332
347
 
333
348
  # Switch the middle LED on, if _toggle_ is true, off, otherwise.
@@ -350,7 +365,7 @@ class BlinkenLights
350
365
 
351
366
  # Return the state of the right LED: true for switched on, false for off.
352
367
  def right
353
- (digital & LED_RIGHT) != 0
368
+ (digital & LED_RIGHT) != LED_NONE
354
369
  end
355
370
 
356
371
  # Switch the right LED on, if _toggle_ is true, off, otherwise.
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: blinkenlights
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.1
7
- date: 2005-10-18 00:00:00 +02:00
6
+ version: 0.0.2
7
+ date: 2005-10-19 00:00:00 +02:00
8
8
  summary: Control the Blinkenlights on your keyboard from Ruby
9
9
  require_paths:
10
10
  - lib
@@ -29,15 +29,17 @@ cert_chain:
29
29
  authors:
30
30
  - Florian Frank
31
31
  files:
32
- - Rakefile
33
- - GPL
34
32
  - examples
35
- - README.en
36
- - VERSION
37
33
  - install.rb
38
- - make_doc.rb
34
+ - GPL
35
+ - Rakefile
36
+ - VERSION
37
+ - CHANGES
39
38
  - lib
39
+ - make_doc.rb
40
+ - README.en
40
41
  - examples/netblinker.rb
42
+ - examples/loadbar.rb
41
43
  - lib/blinkenlights.rb
42
44
  test_files: []
43
45
  rdoc_options: