|
42 | 42 | end
|
43 | 43 |
|
44 | 44 | it 'allows iterating over values' do
|
45 |
| - expect(enum.map { |e| e }).to eq [enum.RED, enum.GREEN, enum.BLUE] |
| 45 | + expect(enum.entries).to eq [enum.RED, enum.GREEN, enum.BLUE] |
46 | 46 | expect(enum.map(&:value)).to eq %i[red green blue]
|
47 | 47 | end
|
48 | 48 |
|
|
57 | 57 | it 'allows looking up by value' do
|
58 | 58 | expect(enum[:red]).to equal enum.RED
|
59 | 59 | end
|
| 60 | + |
| 61 | + it 'allows getting the list of values' do |
| 62 | + expect(enum.values).to eq %i[red green blue] |
| 63 | + end |
| 64 | + |
| 65 | + it 'allows getting the list of names as symbols' do |
| 66 | + expect(enum.names).to eq %i[RED GREEN BLUE] |
| 67 | + end |
60 | 68 | end
|
61 | 69 |
|
62 | 70 | context 'with array attributes' do
|
|
94 | 102 | end
|
95 | 103 |
|
96 | 104 | it 'allows iterating over values' do
|
97 |
| - expect(enum.map { |e| e }).to eq [enum.RED, enum.GREEN, enum.BLUE] |
| 105 | + expect(enum.entries).to eq [enum.RED, enum.GREEN, enum.BLUE] |
98 | 106 | expect(enum.map(&:value)).to eq %i[red green blue]
|
99 | 107 | expect(enum.map(&:hex)).to eq %w[#f00 #0f0 #00f]
|
100 | 108 | expect(enum.map(&:rgb)).to eq [[255, 0, 0], [0, 255, 0], [0, 0, 255]]
|
101 | 109 | end
|
| 110 | + |
| 111 | + it 'allows getting the list of values' do |
| 112 | + expect(enum.values).to eq %i[red green blue] |
| 113 | + end |
| 114 | + |
| 115 | + it 'allows getting the list of names as symbols' do |
| 116 | + expect(enum.names).to eq %i[RED GREEN BLUE] |
| 117 | + end |
102 | 118 | end
|
103 | 119 |
|
104 | 120 | context 'with hash attributes' do
|
105 | 121 | let(:enum) do
|
106 |
| - EnumType.create(value: Symbol, hex: String, rgb: Array) do |
107 |
| - RED(:red, '#f00', [255, 0, 0]) |
108 |
| - GREEN(:green, '#0f0', [0, 255, 0]) |
109 |
| - BLUE(:blue, '#00f', [0, 0, 255]) |
| 122 | + EnumType.create(value: String, hex: String, rgb: Array) do |
| 123 | + RED('red', '#f00', [255, 0, 0]) |
| 124 | + GREEN('green', '#0f0', [0, 255, 0]) |
| 125 | + BLUE('blue', '#00f', [0, 0, 255]) |
110 | 126 | end
|
111 | 127 | end
|
112 | 128 |
|
113 | 129 | it 'defines all the enum types with the right value' do
|
114 |
| - expect(enum.RED.value).to eq :red |
115 |
| - expect(enum.GREEN.value).to eq :green |
116 |
| - expect(enum.BLUE.value).to eq :blue |
| 130 | + expect(enum.RED.value).to eq 'red' |
| 131 | + expect(enum.GREEN.value).to eq 'green' |
| 132 | + expect(enum.BLUE.value).to eq 'blue' |
117 | 133 | end
|
118 | 134 |
|
119 | 135 | it 'defines all the enum types with the right name' do
|
|
136 | 152 | end
|
137 | 153 |
|
138 | 154 | it 'allows iterating over values' do
|
139 |
| - expect(enum.map { |e| e }).to eq [enum.RED, enum.GREEN, enum.BLUE] |
140 |
| - expect(enum.map(&:value)).to eq %i[red green blue] |
| 155 | + expect(enum.entries).to eq [enum.RED, enum.GREEN, enum.BLUE] |
| 156 | + expect(enum.map(&:value)).to eq %w[red green blue] |
141 | 157 | expect(enum.map(&:hex)).to eq %w[#f00 #0f0 #00f]
|
142 | 158 | expect(enum.map(&:rgb)).to eq [[255, 0, 0], [0, 255, 0], [0, 0, 255]]
|
143 | 159 | end
|
| 160 | + |
| 161 | + it 'allows getting the list of values' do |
| 162 | + expect(enum.values).to eq %w[red green blue] |
| 163 | + end |
| 164 | + |
| 165 | + it 'allows getting the list of names as symbols' do |
| 166 | + expect(enum.names).to eq %i[RED GREEN BLUE] |
| 167 | + end |
144 | 168 | end
|
145 | 169 |
|
146 | 170 | context 'with hash attributes and an invalid definition' do
|
|
0 commit comments