28 lines
576 B
Ruby
28 lines
576 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AddHashedContentToFiles < ActiveRecord::Migration[4.2]
|
|
class CodeOcean::File < ApplicationRecord
|
|
before_validation :hash_content, if: :content_present?
|
|
|
|
private
|
|
|
|
def content_present?
|
|
content? || native_file?
|
|
end
|
|
|
|
def hash_content
|
|
self.hashed_content = Digest::MD5.new.hexdigest(read || '')
|
|
end
|
|
end
|
|
|
|
def change
|
|
add_column :files, :hashed_content, :string
|
|
|
|
reversible do |direction|
|
|
direction.up do
|
|
CodeOcean::File.unscope(:order).find_each(&:save)
|
|
end
|
|
end
|
|
end
|
|
end
|