Sha256: baeeb0dfa4d725e9d0c5fa79e4a32d1c51f1f4953ce743d95f82ebc3386488a0

Contents?: true

Size: 867 Bytes

Versions: 1

Compression:

Stored size: 867 Bytes

Contents

require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'yard'

RSpec::Core::RakeTask.new(:spec)

task default: :spec

YARD::Rake::YardocTask.new

def unpickle(file)
  out, status = Open3.capture2e("bin/pickle2json #{file.inspect}")
  abort out unless status.success?
  JSON.parse(out).to_h
end

def gzip_dump(file, obj)
  require 'fileutils'
  require 'zlib'

  FileUtils.mkdir_p(File.dirname(file))
  Zlib::GzipWriter.open(file) do |gz|
    gz.write(Marshal.dump(obj))
  end
end

task :unpickle, [:file] do |_t, args|
  require 'json'
  require 'open3'

  files = Dir[args[:file] || 'data/src/**/*'].select do |f|
    File.file?(f)
  end

  files.map do |src|
    fork do
      puts "Unpickling #{src} ..."
      gzip_dump(src.sub('/src/', '/'), unpickle(src))
    end
  end.map do |pid|
    Process.wait2(pid).last
  end.all?(&:success?) or exit(1)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
splitta-5.0.0 Rakefile