seven_segment_display 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  * 1 major enhancement:
4
4
  * Initial release
5
-
6
- === 0.0.3 2010-04-14
5
+
6
+ === 0.0.4 2010-04-14
7
7
 
8
8
  * 1 major enhancement:
9
- * Ability to specify size of digits
9
+ * Now supports negative and positive integers
data/README.rdoc CHANGED
@@ -4,11 +4,11 @@ http://github.com/davidcole/seven_segment_display
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch Integer.
7
+ Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch to Integer.
8
8
 
9
9
  == FEATURES/PROBLEMS:
10
10
 
11
- Stay tuned.
11
+ Positive and negative integers.
12
12
 
13
13
  == SYNOPSIS:
14
14
 
@@ -16,8 +16,8 @@ Stay tuned.
16
16
  require 'seven_segment_display'
17
17
 
18
18
  puts 0.seven_segment
19
- puts 42.seven_segment( 5 )
20
- puts 1029384756.seven_segment( 2 )
19
+ puts 42.seven_segment
20
+ puts 1029384756.seven_segment
21
21
 
22
22
  Outputs:
23
23
 
@@ -26,26 +26,16 @@ Outputs:
26
26
 
27
27
  | |
28
28
 
29
- —————
30
- | | |
31
- | | |
32
- | | |
33
- | | |
34
- | | |
35
- ————— —————
36
- ||
37
- ||
38
- ||
39
- ||
40
- ||
41
- —————
42
- —— —— —— —— —— —— —— ——
43
- || | || | || || | || |
44
- || | || | || || | || |
45
- —— —— —— —— —— —— ——
46
- || || | || | | | || |
47
- || || | || | | | || |
48
- —— —— —— —— —— —— ——
29
+
30
+ | | |
31
+
32
+ ||
33
+
34
+ — — — — — — —
35
+ || | || | || || | || |
36
+ — — — — — — —
37
+ || || | || | | | || |
38
+ — — — — — — —
49
39
 
50
40
  == REQUIREMENTS:
51
41
 
@@ -11,75 +11,82 @@ module SevenSegmentDisplay
11
11
  BOTTOM = 4
12
12
 
13
13
  number_layouts = {
14
- 0 => {
14
+ '0' => {
15
15
  TOP => [ ' ', '—', ' ' ],
16
16
  TOP_BODY => [ '|', ' ', '|' ],
17
17
  MIDDLE => [ ' ', ' ', ' ' ],
18
18
  BOTTOM_BODY => [ '|', ' ', '|' ],
19
19
  BOTTOM => [ ' ', '—', ' ' ]
20
20
  },
21
- 1 => {
21
+ '1' => {
22
22
  TOP => [ ' ', ' ', ' ' ],
23
23
  TOP_BODY => [ ' ', ' ', '|' ],
24
24
  MIDDLE => [ ' ', ' ', ' ' ],
25
25
  BOTTOM_BODY => [ ' ', ' ', '|' ],
26
26
  BOTTOM => [ ' ', ' ', ' ' ]
27
27
  },
28
- 2 => {
28
+ '2' => {
29
29
  TOP => [ ' ', '—', ' ' ],
30
30
  TOP_BODY => [ ' ', ' ', '|' ],
31
31
  MIDDLE => [ ' ', '—', ' ' ],
32
32
  BOTTOM_BODY => [ '|', ' ', ' ' ],
33
33
  BOTTOM => [ ' ', '—', ' ' ]
34
34
  },
35
- 3 => {
35
+ '3' => {
36
36
  TOP => [ ' ', '—', ' ' ],
37
37
  TOP_BODY => [ ' ', ' ', '|' ],
38
38
  MIDDLE => [ ' ', '—', ' ' ],
39
39
  BOTTOM_BODY => [ ' ', ' ', '|' ],
40
40
  BOTTOM => [ ' ', '—', ' ' ]
41
41
  },
42
- 4 => {
42
+ '4' => {
43
43
  TOP => [ ' ', ' ', ' ' ],
44
44
  TOP_BODY => [ '|', ' ', '|' ],
45
45
  MIDDLE => [ ' ', '—', ' ' ],
46
46
  BOTTOM_BODY => [ ' ', ' ', '|' ],
47
47
  BOTTOM => [ ' ', ' ', ' ' ]
48
48
  },
49
- 5 => {
49
+ '5' => {
50
50
  TOP => [ ' ', '—', ' ' ],
51
51
  TOP_BODY => [ '|', ' ', ' ' ],
52
52
  MIDDLE => [ ' ', '—', ' ' ],
53
53
  BOTTOM_BODY => [ ' ', ' ', '|' ],
54
54
  BOTTOM => [ ' ', '—', ' ' ]
55
55
  },
56
- 6 => {
56
+ '6' => {
57
57
  TOP => [ ' ', '—', ' ' ],
58
58
  TOP_BODY => [ '|', ' ', ' ' ],
59
59
  MIDDLE => [ ' ', '—', ' ' ],
60
60
  BOTTOM_BODY => [ '|', ' ', '|' ],
61
61
  BOTTOM => [ ' ', '—', ' ' ]
62
62
  },
63
- 7 => {
63
+ '7' => {
64
64
  TOP => [ ' ', '—', ' ' ],
65
65
  TOP_BODY => [ ' ', ' ', '|' ],
66
66
  MIDDLE => [ ' ', ' ', ' ' ],
67
67
  BOTTOM_BODY => [ ' ', ' ', '|' ],
68
68
  BOTTOM => [ ' ', ' ', ' ' ]
69
69
  },
70
- 8 => {
70
+ '8' => {
71
71
  TOP => [ ' ', '—', ' ' ],
72
72
  TOP_BODY => [ '|', ' ', '|' ],
73
73
  MIDDLE => [ ' ', '—', ' ' ],
74
74
  BOTTOM_BODY => [ '|', ' ', '|' ],
75
75
  BOTTOM => [ ' ', '—', ' ' ]
76
76
  },
77
- 9 => {
77
+ '9' => {
78
78
  TOP => [ ' ', '—', ' ' ],
79
79
  TOP_BODY => [ '|', ' ', '|' ],
80
80
  MIDDLE => [ ' ', '—', ' ' ],
81
81
  BOTTOM_BODY => [ ' ', ' ', '|' ],
82
82
  BOTTOM => [ ' ', '—', ' ' ]
83
+ },
84
+ '-' => {
85
+ TOP => [ ' ', ' ', ' ' ],
86
+ TOP_BODY => [ ' ', ' ', ' ' ],
87
+ MIDDLE => [ ' ', '—', ' ' ],
88
+ BOTTOM_BODY => [ ' ', ' ', ' ' ],
89
+ BOTTOM => [ ' ', ' ', ' ' ]
83
90
  }
84
91
  }
85
92
 
@@ -93,7 +100,7 @@ module SevenSegmentDisplay
93
100
  make_line = lambda { | line_number |
94
101
  line = ''
95
102
  0.upto( number_count - 1 ) do | digit_index |
96
- number_layout = number_layouts[ digits[ digit_index ].to_i ]
103
+ number_layout = number_layouts[ digits[ digit_index ] ]
97
104
  line << "#{ number_layout[ line_number ][ 0 ] }#{ number_layout[ line_number ][ 1 ] * size }#{ number_layout[ line_number ][ 2 ] }"
98
105
  end
99
106
  line + "\n"
@@ -42,6 +42,22 @@ class TestSevenSegmentDisplay < Test::Unit::TestCase
42
42
  || | | || | || | || |
43
43
  || | | || | || | || |
44
44
  ————— ————— ————— ————— ————— ————— —————
45
+ END
46
+ @all_digits_negative = <<-END
47
+ — —
48
+ | | |
49
+ — — —
50
+ || |
51
+ — —
52
+ END
53
+ @all_digits_negative_2 = <<-END
54
+ —— ——
55
+ | | |
56
+ | | |
57
+ —— —— ——
58
+ || |
59
+ || |
60
+ —— ——
45
61
  END
46
62
  end
47
63
 
@@ -50,6 +66,8 @@ class TestSevenSegmentDisplay < Test::Unit::TestCase
50
66
  assert_equal( @all_digits_backwards, 9876543210.seven_segment )
51
67
  assert_equal( @all_digits_2, 1234567890.seven_segment( 2 ) )
52
68
  assert_equal( @all_digits_5, 1234567890.seven_segment( 5 ) )
69
+ assert_equal( @all_digits_negative, -123.seven_segment )
70
+ assert_equal( @all_digits_negative_2, -123.seven_segment( 2 ) )
53
71
  assert_raise( ArgumentError ) { 1234567890.seven_segment( 0 ) }
54
72
  end
55
73
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Cole
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: 2.6.0
46
46
  type: :development
47
47
  version_requirements: *id002
48
- description: Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch Integer.
48
+ description: Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch to Integer.
49
49
  email:
50
50
  - davidcole@davidcole.net
51
51
  executables: []
@@ -96,7 +96,7 @@ rubyforge_project: seven-segment
96
96
  rubygems_version: 1.3.6
97
97
  signing_key:
98
98
  specification_version: 3
99
- summary: Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch Integer.
99
+ summary: Converts numbers to seven segment display digits, as in a digital clock, by adding a monkeypatch to Integer.
100
100
  test_files:
101
101
  - test/test_helper.rb
102
102
  - test/test_seven_segment_display.rb