Runtime assertions for Ruby literal.fun
ruby
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Literal::Enum#to_h should yield members, not values (#253)

authored by

Joel Drapper and committed by
GitHub
97bd071a 43f7be55

+7 -3
+6 -2
lib/literal/enum.rb
··· 158 158 method(:coerce).to_proc 159 159 end 160 160 161 - def to_h(...) 162 - @values.to_h(...) 161 + def to_h(&) 162 + if block_given? 163 + @members.to_h(&) 164 + else 165 + @members.to_h { |it| [it, it.value] } 166 + end 163 167 end 164 168 end 165 169
+1 -1
test/enum.test.rb
··· 47 47 expect(Color.coerce(1)) == Color::Red 48 48 expect(Color.coerce(Color::Red)) == Color::Red 49 49 expect(Color.to_set) == Set[Color::Red, Color::Green, Color::Blue] 50 - expect(Color.to_h) == { 1 => Color::Red, 2 => Color::Green, 3 => Color::Blue } 50 + expect(Color.to_h) == { Color::Red => 1, Color::Green => 2, Color::Blue => 3 } 51 51 expect(Color.to_a) == [Color::Red, Color::Green, Color::Blue] if RUBY_VERSION >= "3.2" 52 52 expect(Color.values) == [1, 2, 3] if RUBY_VERSION >= "3.2" 53 53 expect([3, 2, 1].map(&Color)) == [Color::Blue, Color::Green, Color::Red]