Sha256: 6a5aad9a641da22f00983fbdfb4755622e2327fa373769b58fbc92883034ef88

Contents?: true

Size: 829 Bytes

Versions: 2

Compression:

Stored size: 829 Bytes

Contents

require 'backup/save_file'

module SaveIdHashToFile
  include SaveFile

  def save_id_hash_to_file(id_hash)
    id_hash.each do |name, ids|
      ids.sort.each_slice(@config.limit.to_i) do |ids_batch|
        save_ids_batch_to_file(name, ids_batch)
      end
    end
  end

  def save_ids_batch_to_file(name, ids_batch)
    model = Model.get_model(name)

    export = {}
    export[:table_name] = model.table_name
    export[:data] = ids_batch.map do |id|
      get_exported_object(model, id)
    end

    content = JSON.pretty_generate(export)
    file_name = "#{name}_#{ids_batch.first}-#{ids_batch.last}.json"
    file_path = @subfolder.present? ? "#{@subfolder}/#{file_name}" : file_name
    save_file(file_path, content)
  end

  def get_exported_object(model, id)
    object = model.find(id)
    object.attributes
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
travis-backup-for-v3-0.1.0 lib/backup/save_id_hash_to_file.rb
travis-backup-0.3.0 lib/backup/save_id_hash_to_file.rb