Sha256: e6e8b773b21786f08b204043483292f641115f22ee6a87d552a3a6ed2fe55a0d
Contents?: true
Size: 851 Bytes
Versions: 4
Compression:
Stored size: 851 Bytes
Contents
module FlexibleEnum class SetterMethodConfigurator < AbstractConfigurator def apply attribute_name = self.attribute_name elements.each do |element_name, element_config| bang_method_name = element_config[:setter] || "#{element_name}!" attributes = {attribute_name => element_config[:value]} timestamp_attribute_name = element_config[:timestamp_attribute] || element_name add_instance_method(bang_method_name) do time = Time.now.utc attributes["#{timestamp_attribute_name}_on".to_sym] = time.to_date if self.class.attribute_method?("#{timestamp_attribute_name}_on") attributes["#{timestamp_attribute_name}_at".to_sym] = time if self.class.attribute_method?("#{timestamp_attribute_name}_at") update_attributes(attributes) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems