nice_enum 0.1.4 → 0.2.0

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/samples/filemodes.rb CHANGED
@@ -1,20 +1,20 @@
1
- require "../lib/nice_enum"
2
-
3
- class Permission < Flags
4
- enum :None, 0
5
- enum :Read, 4
6
- enum :Write, 2
7
- enum :Execute, 1
8
- end
9
-
10
- file = ARGV[0] || __FILE__
11
- puts "Permissions on #{file}:"
12
-
13
- mode = File.stat(file).mode
14
- user = Permission.new((mode & 448) >> 6)
15
- group = Permission.new((mode & 56) >> 3)
16
- world = Permission.new(mode & 7)
17
-
18
- puts "User: #{user}"
19
- puts "Group: #{group}"
20
- puts "World: #{world}"
1
+ require "../lib/nice_enum"
2
+
3
+ class Permission < Flags
4
+ enum :None, 0
5
+ enum :Read, 4
6
+ enum :Write, 2
7
+ enum :Execute, 1
8
+ end
9
+
10
+ file = ARGV[0] || __FILE__
11
+ puts "Permissions on #{file}:"
12
+
13
+ mode = File.stat(file).mode
14
+ user = Permission.new((mode & 448) >> 6)
15
+ group = Permission.new((mode & 56) >> 3)
16
+ world = Permission.new(mode & 7)
17
+
18
+ puts "User: #{user}"
19
+ puts "Group: #{group}"
20
+ puts "World: #{world}"
@@ -1,16 +1,16 @@
1
- require "../lib/nice_enum"
2
-
3
- class Number < Enum
4
- enum :Zero, 0
5
- enum :One, 1
6
- enum :Two, 2
7
-
8
- def square
9
- value ** 2
10
- end
11
- end
12
-
13
- numbers = Number.to_a
14
- numbers << Number.new(3)
15
-
16
- numbers.each { |number| puts "#{number} squared is #{number.square}." }
1
+ require "../lib/nice_enum"
2
+
3
+ class Number < Enum
4
+ enum :Zero, 0
5
+ enum :One, 1
6
+ enum :Two, 2
7
+
8
+ def square
9
+ value ** 2
10
+ end
11
+ end
12
+
13
+ numbers = Number.to_a
14
+ numbers << Number.new(3)
15
+
16
+ numbers.each { |number| puts "#{number} squared is #{number.square}." }
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ gem 'activerecord'
3
+ require 'active_record'
4
+ require "nice_enum"
5
+ require "nice_enum_active_record_extension"
6
+ require "test/unit"
7
+
8
+ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
9
+
10
+ silence_stream(STDOUT) do
11
+ ActiveRecord::Schema.define do
12
+ create_table :my_models do |t|
13
+ t.string :my_number
14
+ end
15
+ end
16
+ end
17
+
18
+ class ActiveSupportTest < Test::Unit::TestCase
19
+
20
+ ActiveRecord::Base.send :include, NiceEnumActiveRecordExtension
21
+
22
+ class Number < Enum
23
+ enum :One
24
+ enum :Two
25
+ end
26
+
27
+ class MyModel < ActiveRecord::Base
28
+
29
+ attr_accessible :my_number
30
+
31
+ map_enum :my_number, Number
32
+ end
33
+
34
+ def test_respond_to_known_attribute
35
+ model = MyModel.new
36
+ model.my_number = Number::Two
37
+ assert model.my_number == Number::Two
38
+ end
39
+ end
@@ -1,30 +1,30 @@
1
- require "nice_enum"
2
- require "test/unit"
3
-
4
- class AttributeTest < Test::Unit::TestCase
5
- class Number < Enum
6
- enum :Twenty, 20,
7
- :note => "Exact value of e^pi - pi"
8
-
9
- enum :Ninety, 90,
10
- :note => "Square Root of -1"
11
-
12
- enum :FourtyTwo, 42
13
- end
14
-
15
- def test_respond_to_known_attribute
16
- assert Number::Twenty.respond_to?(:note)
17
- end
18
-
19
- def test_get_attribute_from_known_value
20
- assert_equal "Exact value of e^pi - pi", Number::Twenty.note
21
- end
22
-
23
- def test_get_attribute_from_unknown_value
24
- assert_equal nil, Number.new(8).note
25
- end
26
-
27
- def test_respond_to_unknown_attribute
28
- assert !Number::Twenty.respond_to?(:color)
29
- end
30
- end
1
+ require "nice_enum"
2
+ require "test/unit"
3
+
4
+ class AttributeTest < Test::Unit::TestCase
5
+ class Number < Enum
6
+ enum :Twenty, 20,
7
+ :note => "Exact value of e^pi - pi"
8
+
9
+ enum :Ninety, 90,
10
+ :note => "Square Root of -1"
11
+
12
+ enum :FourtyTwo, 42
13
+ end
14
+
15
+ def test_respond_to_known_attribute
16
+ assert Number::Twenty.respond_to?(:note)
17
+ end
18
+
19
+ def test_get_attribute_from_known_value
20
+ assert_equal "Exact value of e^pi - pi", Number::Twenty.note
21
+ end
22
+
23
+ def test_get_attribute_from_unknown_value
24
+ assert_equal nil, Number.new(8).note
25
+ end
26
+
27
+ def test_respond_to_unknown_attribute
28
+ assert !Number::Twenty.respond_to?(:color)
29
+ end
30
+ end
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
@@ -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
@@ -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