Sha256: 7704ae6b233de9e70785caa24ad0c3622ec0352feea28c1ddb8d3edbe82d2f2f

Contents?: true

Size: 772 Bytes

Versions: 5

Compression:

Stored size: 772 Bytes

Contents

require 'digest'

module DataSeeder
  class SeedFile < ActiveRecord::Base
    def self.file_hash
      hash = {}
      all.each do |seed_file|
        hash[seed_file.path] = seed_file
      end
      hash
    end

    def self.load(path)
      seed_file = self.file_hash[path] || new(path: path)
      seed_file.load
    end

    def load
      new_sha256 = Digest::SHA256.file(path).hexdigest
      if self.sha256 != new_sha256
        self.sha256 = new_sha256
        ext = File.extname(self.path)[1..-1]
        return unless ext
        loader = DataSeeder.config.loaders[ext]
        unless loader
          DataSeeder.logger.info { "Warning: No loader for #{path}"}
          return
        end
        loader.process(path)
        save!
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
data_seeder-0.0.5 app/models/data_seeder/seed_file.rb
data_seeder-0.0.4 app/models/data_seeder/seed_file.rb
data_seeder-0.0.3 app/models/data_seeder/seed_file.rb
data_seeder-0.0.2 app/models/data_seeder/seed_file.rb
data_seeder-0.0.1 app/models/data_seeder/seed_file.rb