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