From 974a830fb020bd5dd3206153cb4719dff1d7afce Mon Sep 17 00:00:00 2001 From: Devin Moss Date: Thu, 27 Oct 2016 13:17:54 -0500 Subject: [PATCH] Remove const_missing method in favor of const_set --- lib/ruby-enum/enum.rb | 9 +-------- spec/ruby-enum/enum_spec.rb | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/ruby-enum/enum.rb b/lib/ruby-enum/enum.rb index 91dd5a5..dd2103b 100644 --- a/lib/ruby-enum/enum.rb +++ b/lib/ruby-enum/enum.rb @@ -24,14 +24,7 @@ def define(key, value) new_instance = new(key, value) @_enum_hash[key] = new_instance @_enums_by_value[value] = new_instance - end - - def const_missing(key) - if @_enum_hash[key] - @_enum_hash[key].value - else - fail Ruby::Enum::Errors::UninitializedConstantError, name: name, key: key - end + const_set key, value end # Iterate over all enumerated values. diff --git a/spec/ruby-enum/enum_spec.rb b/spec/ruby-enum/enum_spec.rb index fa9276c..fe83942 100644 --- a/spec/ruby-enum/enum_spec.rb +++ b/spec/ruby-enum/enum_spec.rb @@ -13,7 +13,7 @@ class Colors expect(Colors::GREEN).to eq 'green' end it 'raises UninitializedConstantError on an invalid constant' do - expect { Colors::ANYTHING }.to raise_error Ruby::Enum::Errors::UninitializedConstantError, /The constant Colors::ANYTHING has not been defined./ + expect { Colors::ANYTHING }.to raise_error NameError, /uninitialized constant Colors::ANYTHING/ end context '#each' do it 'iterates over constants' do