nice_enum 0.1.3 → 0.1.4
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/LICENSE +24 -24
- data/README.rdoc +199 -198
- data/lib/nice_enum.rb +173 -173
- data/samples/deck.rb +59 -59
- data/samples/filemodes.rb +20 -20
- data/samples/squaring_numbers.rb +16 -16
- data/test/attribute_test.rb +30 -30
- data/test/const_test.rb +47 -47
- data/test/default_attribute_test.rb +24 -24
- data/test/default_value_test.rb +22 -22
- data/test/flags_test.rb +38 -38
- data/test/hashcode_test.rb +20 -20
- metadata +14 -11
data/test/const_test.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
require "nice_enum"
|
2
|
-
require "test/unit"
|
3
|
-
|
4
|
-
class ConstTest < Test::Unit::TestCase
|
5
|
-
class Number < Enum
|
6
|
-
enum :Zero, 0
|
7
|
-
enum :One, 1
|
8
|
-
enum :Two, 2
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_to_s
|
12
|
-
assert_equal "Zero", Number::Zero.to_s
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_value_equality
|
16
|
-
assert_equal 2, Number::Two.value
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_enum_equality
|
20
|
-
assert_equal Number::Zero, Number::Zero
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_mixed_equality
|
24
|
-
assert_equal Number::Zero, 0
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_new_stays_same
|
28
|
-
assert_same Number::Zero, Number.new(0)
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_new_on_undefined_enum_value
|
32
|
-
assert_equal -13, Number.new(-13)
|
33
|
-
assert_equal "-13", Number.new(-13).to_s
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_respond_to_mirroring
|
37
|
-
assert Number::One.respond_to? :abs
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_send_mirroring
|
41
|
-
assert_equal -1, -Number::One
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_enumerable
|
45
|
-
assert_equal [Number::Zero, Number::One, Number::Two], Number.to_a
|
46
|
-
end
|
47
|
-
end
|
1
|
+
require "nice_enum"
|
2
|
+
require "test/unit"
|
3
|
+
|
4
|
+
class ConstTest < Test::Unit::TestCase
|
5
|
+
class Number < Enum
|
6
|
+
enum :Zero, 0
|
7
|
+
enum :One, 1
|
8
|
+
enum :Two, 2
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_to_s
|
12
|
+
assert_equal "Zero", Number::Zero.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_value_equality
|
16
|
+
assert_equal 2, Number::Two.value
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_enum_equality
|
20
|
+
assert_equal Number::Zero, Number::Zero
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_mixed_equality
|
24
|
+
assert_equal Number::Zero, 0
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_new_stays_same
|
28
|
+
assert_same Number::Zero, Number.new(0)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_new_on_undefined_enum_value
|
32
|
+
assert_equal -13, Number.new(-13)
|
33
|
+
assert_equal "-13", Number.new(-13).to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_respond_to_mirroring
|
37
|
+
assert Number::One.respond_to? :abs
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_send_mirroring
|
41
|
+
assert_equal -1, -Number::One
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_enumerable
|
45
|
+
assert_equal [Number::Zero, Number::One, Number::Two], Number.to_a
|
46
|
+
end
|
47
|
+
end
|
@@ -1,24 +1,24 @@
|
|
1
|
-
require "nice_enum"
|
2
|
-
require "test/unit"
|
3
|
-
|
4
|
-
class DefaultAttributeTest < Test::Unit::TestCase
|
5
|
-
class Number < Enum
|
6
|
-
default :note => "A boring number"
|
7
|
-
|
8
|
-
enum :Twenty, 20,
|
9
|
-
:note => "Exact value of e^pi - pi"
|
10
|
-
|
11
|
-
enum :Ninety, 90,
|
12
|
-
:note => "Square Root of -1"
|
13
|
-
|
14
|
-
enum :FourtyTwo, 42
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_get_set_attribute
|
18
|
-
assert_equal "Exact value of e^pi - pi", Number::Twenty.note
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_get_unset_attribute
|
22
|
-
assert_equal "A boring number", Number::FourtyTwo.note
|
23
|
-
end
|
24
|
-
end
|
1
|
+
require "nice_enum"
|
2
|
+
require "test/unit"
|
3
|
+
|
4
|
+
class DefaultAttributeTest < Test::Unit::TestCase
|
5
|
+
class Number < Enum
|
6
|
+
default :note => "A boring number"
|
7
|
+
|
8
|
+
enum :Twenty, 20,
|
9
|
+
:note => "Exact value of e^pi - pi"
|
10
|
+
|
11
|
+
enum :Ninety, 90,
|
12
|
+
:note => "Square Root of -1"
|
13
|
+
|
14
|
+
enum :FourtyTwo, 42
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_get_set_attribute
|
18
|
+
assert_equal "Exact value of e^pi - pi", Number::Twenty.note
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_get_unset_attribute
|
22
|
+
assert_equal "A boring number", Number::FourtyTwo.note
|
23
|
+
end
|
24
|
+
end
|
data/test/default_value_test.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "nice_enum"
|
3
|
-
|
4
|
-
class DefaultValueTest < Test::Unit::TestCase
|
5
|
-
class Suit < Enum
|
6
|
-
enum :Spades
|
7
|
-
enum :Hearts
|
8
|
-
enum :Green, 48
|
9
|
-
enum :Diamonds
|
10
|
-
enum :Clubs
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_enum_order
|
14
|
-
assert_equal [Suit::Spades, Suit::Hearts, Suit::Green, Suit::Diamonds, Suit::Clubs], Suit.to_a.sort
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_values
|
18
|
-
assert_equal 1, Suit::Hearts.value
|
19
|
-
assert_equal 48, Suit::Green.value
|
20
|
-
assert_equal 49, Suit::Diamonds.value
|
21
|
-
end
|
22
|
-
end
|
1
|
+
require "test/unit"
|
2
|
+
require "nice_enum"
|
3
|
+
|
4
|
+
class DefaultValueTest < Test::Unit::TestCase
|
5
|
+
class Suit < Enum
|
6
|
+
enum :Spades
|
7
|
+
enum :Hearts
|
8
|
+
enum :Green, 48
|
9
|
+
enum :Diamonds
|
10
|
+
enum :Clubs
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_enum_order
|
14
|
+
assert_equal [Suit::Spades, Suit::Hearts, Suit::Green, Suit::Diamonds, Suit::Clubs], Suit.to_a.sort
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_values
|
18
|
+
assert_equal 1, Suit::Hearts.value
|
19
|
+
assert_equal 48, Suit::Green.value
|
20
|
+
assert_equal 49, Suit::Diamonds.value
|
21
|
+
end
|
22
|
+
end
|
data/test/flags_test.rb
CHANGED
@@ -1,38 +1,38 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "nice_enum"
|
3
|
-
|
4
|
-
class FlagsTest < Test::Unit::TestCase
|
5
|
-
class Permission < Flags
|
6
|
-
enum :Read, 4
|
7
|
-
enum :Write, 2
|
8
|
-
enum :Execute, 1
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_binary_operators_return_class
|
12
|
-
assert (Permission::Read | Permission::Write).is_a? Permission
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_or
|
16
|
-
assert_equal 6, Permission::Read | Permission::Write
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_and
|
20
|
-
assert_equal Permission::Write, 7 & Permission::Write
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_xor
|
24
|
-
assert_equal Permission::Read | Permission::Write, 7 ^ Permission::Execute
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_single_flag
|
28
|
-
assert_equal [Permission::Read], Permission::Read.flags
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_multi_flags
|
32
|
-
assert_equal [Permission::Write, Permission::Read], Permission.new(6).flags
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_to_s
|
36
|
-
assert_equal "Execute|Write", Permission.new(3).to_s.gsub(' ', '')
|
37
|
-
end
|
38
|
-
end
|
1
|
+
require "test/unit"
|
2
|
+
require "nice_enum"
|
3
|
+
|
4
|
+
class FlagsTest < Test::Unit::TestCase
|
5
|
+
class Permission < Flags
|
6
|
+
enum :Read, 4
|
7
|
+
enum :Write, 2
|
8
|
+
enum :Execute, 1
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_binary_operators_return_class
|
12
|
+
assert (Permission::Read | Permission::Write).is_a? Permission
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_or
|
16
|
+
assert_equal 6, Permission::Read | Permission::Write
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_and
|
20
|
+
assert_equal Permission::Write, 7 & Permission::Write
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_xor
|
24
|
+
assert_equal Permission::Read | Permission::Write, 7 ^ Permission::Execute
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_single_flag
|
28
|
+
assert_equal [Permission::Read], Permission::Read.flags
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_multi_flags
|
32
|
+
assert_equal [Permission::Write, Permission::Read], Permission.new(6).flags
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_to_s
|
36
|
+
assert_equal "Execute|Write", Permission.new(3).to_s.gsub(' ', '')
|
37
|
+
end
|
38
|
+
end
|
data/test/hashcode_test.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
require "nice_enum"
|
2
|
-
require "test/unit"
|
3
|
-
|
4
|
-
class HashcodeTest < Test::Unit::TestCase
|
5
|
-
VALUE = 18505
|
6
|
-
HASH = VALUE.hash
|
7
|
-
|
8
|
-
class Enumeration < Enum
|
9
|
-
enum :Value, VALUE
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_hashcode_is_underlying_hash
|
13
|
-
assert_equal HASH, Enumeration::Value.hash
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_hashcode_from_constructor
|
17
|
-
value = Enumeration.new(VALUE)
|
18
|
-
assert_equal HASH, value.hash
|
19
|
-
end
|
20
|
-
end
|
1
|
+
require "nice_enum"
|
2
|
+
require "test/unit"
|
3
|
+
|
4
|
+
class HashcodeTest < Test::Unit::TestCase
|
5
|
+
VALUE = 18505
|
6
|
+
HASH = VALUE.hash
|
7
|
+
|
8
|
+
class Enumeration < Enum
|
9
|
+
enum :Value, VALUE
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_hashcode_is_underlying_hash
|
13
|
+
assert_equal HASH, Enumeration::Value.hash
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_hashcode_from_constructor
|
17
|
+
value = Enumeration.new(VALUE)
|
18
|
+
assert_equal HASH, value.hash
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nice_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 964687033
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Raphael Robatsch
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-10-27 00:00:00 +02:00
|
18
19
|
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
@@ -28,17 +29,17 @@ extra_rdoc_files:
|
|
28
29
|
- README.rdoc
|
29
30
|
files:
|
30
31
|
- lib/nice_enum.rb
|
31
|
-
- samples/deck.rb
|
32
|
-
- samples/filemodes.rb
|
33
32
|
- samples/squaring_numbers.rb
|
33
|
+
- samples/filemodes.rb
|
34
|
+
- samples/deck.rb
|
34
35
|
- README.rdoc
|
35
36
|
- LICENSE
|
36
|
-
- test/attribute_test.rb
|
37
37
|
- test/const_test.rb
|
38
|
-
- test/
|
38
|
+
- test/attribute_test.rb
|
39
39
|
- test/default_value_test.rb
|
40
40
|
- test/flags_test.rb
|
41
41
|
- test/hashcode_test.rb
|
42
|
+
- test/default_attribute_test.rb
|
42
43
|
has_rdoc: true
|
43
44
|
homepage: http://raphaelr.github.com/nice_enum
|
44
45
|
licenses: []
|
@@ -53,6 +54,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
53
54
|
requirements:
|
54
55
|
- - ">="
|
55
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 881230260
|
56
58
|
segments:
|
57
59
|
- 0
|
58
60
|
version: "0"
|
@@ -61,20 +63,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
63
|
requirements:
|
62
64
|
- - ">="
|
63
65
|
- !ruby/object:Gem::Version
|
66
|
+
hash: 881230260
|
64
67
|
segments:
|
65
68
|
- 0
|
66
69
|
version: "0"
|
67
70
|
requirements: []
|
68
71
|
|
69
72
|
rubyforge_project:
|
70
|
-
rubygems_version: 1.
|
73
|
+
rubygems_version: 1.5.2
|
71
74
|
signing_key:
|
72
75
|
specification_version: 3
|
73
76
|
summary: Nice Enumerations for Ruby
|
74
77
|
test_files:
|
75
|
-
- test/attribute_test.rb
|
76
78
|
- test/const_test.rb
|
77
|
-
- test/
|
79
|
+
- test/attribute_test.rb
|
78
80
|
- test/default_value_test.rb
|
79
81
|
- test/flags_test.rb
|
80
82
|
- test/hashcode_test.rb
|
83
|
+
- test/default_attribute_test.rb
|