summaryrefslogtreecommitdiffstats
path: root/scripts/migrate_ref_tests.rb
blob: 5ed02893b9311c7769aa884e0750e99eccb8c57f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env ruby

require 'json'

Dir.glob('./tests/ref/**/grid.json').each do |path|
  puts "Migrating #{path}"

  # Read contents
  s = File.open(path) { |f| f.read }

  # Parse
  grid = JSON.parse(s)

  # Normalize Storage serialization
  if grid['raw'].is_a? Array
    grid['raw'] = {
      'inner' => grid['raw'][0],
      'zero' => grid['raw'][1],
      'visible_lines' => grid['raw'][2]
    }
  end

  # Migrate Row serialization
  grid['raw']['inner'].map! do |row|
    if row.is_a? Hash
      row
    else
      { inner: row, occ: row.length }
    end
  end

  # Write updated grid
  File.open(path, 'w') { |f| f << JSON.generate(grid) }
end