Sha256: 6007d38d7ac647daa006a3067fe5032b57cf88a6a3b78179ed9521ca0ba62fff
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
module AssignableValues module ActiveRecord module Restriction class ScalarAttribute < Base def initialize(*args) super define_humanized_method end def humanize_string_value(value) if value.present? dictionary_key = "assignable_values.#{model.name.underscore}.#{property}.#{value}" I18n.t(dictionary_key, :default => value.humanize) end end private def define_humanized_method restriction = self enhance_model do define_method "humanized_#{restriction.property}" do value = send(restriction.property) restriction.humanize_string_value(value) end end end def decorate_values(values) restriction = self values.collect do |value| if value.is_a?(String) value = value.dup value.singleton_class.send(:define_method, :humanized) do restriction.humanize_string_value(value) end end value end end def previously_saved_value(record) record.send("#{property}_was") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
assignable_values-0.1.2 | lib/assignable_values/active_record/restriction/scalar_attribute.rb |
assignable_values-0.1.1 | lib/assignable_values/active_record/restriction/scalar_attribute.rb |