Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 18, 2022 11:03 am GMT

Open Source Adventures: Episode 38: Update script for Russian Losses App

I linked to the Russian Losses App many times in various internet arguments. It doesn't currently have a permanent URL for the latest version, and various versions just reflect state of the code at given point.

It makes sense to keep the code as is, but I still want each version to have the latest data. So I wrote this script:

#!/usr/bin/env rubyrequire "pathname"class UpdateCSV  def initialize(archive_path)    @archive_path = Pathname(archive_path)  end  def updated_equipment    @updated_equipment ||= (@archive_path + "russia_losses_equipment.csv").read  end  def updated_personnel    @updated_personnel ||= (@archive_path + "russia_losses_personnel.csv").read  end  def csv_files    @csv_files ||= `git ls`.lines.map(&:chomp).grep(/\.csv\z/)  end  def call    csv_files.each do |path|      case path      when /russia_losses_equipment/        Pathname(path).write(updated_equipment)      when /russia_losses_personnel/        Pathname(path).write(updated_personnel)      else        puts "Unknown CSV file: #{path}"      end    end  endendunless ARGV[0]  STDERR.puts "Usage: #{$0} path_to_updated_archive"  exit 1endUpdateCSV.new(ARGV[0]).call

To run it, I grab updated version from Kaggle, unpack it, and then run the update script.

There's a lot of files it needs to update. The ones in docs are GitHub Pages compiled app:

docs/episode-29/tanks/russia_losses_equipment.csvdocs/episode-29/tanks/russia_losses_personnel.csvdocs/episode-30/russia_losses_equipment.982e4e03.csvdocs/episode-31/russia_losses_equipment.csvdocs/episode-31/russia_losses_personnel.csvdocs/episode-32/russia_losses_equipment.csvdocs/episode-32/russia_losses_personnel.csvdocs/episode-33/russia_losses_equipment.csvdocs/episode-33/russia_losses_personnel.csvdocs/episode-34/russia_losses_equipment.csvdocs/episode-34/russia_losses_personnel.csvdocs/episode-35/russia_losses_equipment.csvdocs/episode-35/russia_losses_personnel.csvdocs/episode-36/russia_losses_equipment.csvdocs/episode-36/russia_losses_personnel.csvepisode-29/tanks/russia_losses_equipment.csvepisode-29/tanks/russia_losses_personnel.csvepisode-30/src/russia_losses_equipment.csvepisode-30/src/russia_losses_personnel.csvepisode-31/public/russia_losses_equipment.csvepisode-31/public/russia_losses_personnel.csvepisode-32/public/russia_losses_equipment.csvepisode-32/public/russia_losses_personnel.csvepisode-33/public/russia_losses_equipment.csvepisode-33/public/russia_losses_personnel.csvepisode-34/public/russia_losses_equipment.csvepisode-34/public/russia_losses_personnel.csvepisode-35/public/russia_losses_equipment.csvepisode-35/public/russia_losses_personnel.csvepisode-36/public/russia_losses_equipment.csvepisode-36/public/russia_losses_personnel.csv

Coming next

Over the next few episodes, I want to add a few new features to the Russian losses tracker.


Original Link: https://dev.to/taw/open-source-adventures-episode-38-update-script-for-russian-losses-app-52lk

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To