Module: Unidom::Common::Concerns::ExactColumn::ClassMethods
- Defined in:
- app/models/unidom/common/concerns/exact_column.rb
Instance Method Summary collapse
Instance Method Details
#exact_column(*names) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/models/unidom/common/concerns/exact_column.rb', line 13 def exact_column(*names) exact_column_names = exact_column_names||[] exact_column_names += names names.each do |name| name = name.to_s instance_eval do scope :"#{name}_is", ->(value) { where "#{name}_exact_signature" => exact_signature(self, name, value) } before_save do send "#{name}_exact_signature=", self.class.exact_signature(self.class, name, send(name)) end end end end |
#exact_signature(klass, name, value) ⇒ Object
28 29 30 31 |
# File 'app/models/unidom/common/concerns/exact_column.rb', line 28 def exact_signature(klass, name, value) text = "#{Rails.application.secrets[:secret_key_base]}@#{Rails.root}/#{klass.table_name}##{name}=#{value}" "#{Digest::MD5.digest(text)}#{Digest::SHA512.digest(text)}" end |