Sha256: 3c2cd7e54edcd3396ea8bad029e5e7e5efe837fb3c764a56cf077bb64d9f084f
Contents?: true
Size: 852 Bytes
Versions: 1
Compression:
Stored size: 852 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flexible_enum-0.4.2 | lib/flexible_enum/setter_method_configurator.rb |