Module: ManagedEnum::HasManagedEnum
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/managed_enum/has_managed_enum.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Class Method Details
.define_instance_methods_for(attribute, possible_keyvalue, possible_value) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/managed_enum/has_managed_enum.rb', line 37 def self.define_instance_methods_for(attribute, possible_keyvalue, possible_value) define_method "#{possible_keyvalue}?" do self.send(attribute) == possible_value end define_method "make_#{possible_keyvalue}" do self.send "#{attribute}=", possible_value end define_method "#{attribute}_as_string" do current_value = self.send(attribute) all_values = self.class.send("#{attribute}_possible_keyvalues") to_return = '' if all_values.is_a?(Hash) all_values.each do |some_key, some_value| if some_value == current_value to_return = some_key.to_s break end end elsif all_values.is_a?(Array) to_return = current_value end to_return end end |