nice_enum 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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