Sha256: 79c1542c24ffcdb68f71b8255579972584ecbef55f2800c9b6c1c1245039c9e9

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

require "firestore"
require "github"
require "tools/sync/helpers"

module Icarus
  module Mod
    module Tools
      module Sync
        # Sync methods
        class Proginfo
          include Helpers

          def initialize(client: nil)
            @firestore = client || Firestore.new
            @github = Github.new
            @repositories = []
          end

          def repositories
            @firestore.repos
          end

          def update(proginfo_array)
            @firestore.update(:proginfo, proginfo_array)
          end

          def proginfo(url)
            retrieve_from_url(url)
          end

          def data(repositories, verbose: false)
            repositories.map do |repo|
              print "searching #{repo}..." if verbose

              case repo
              when /github/
                @github.repository = repo
                proginfo_url = @github.find("proginfo.json")

                unless proginfo_url
                  puts "Skipped...no proginfo.json" if verbose
                  next
                end

                puts "Found!" if verbose
                proginfo_url
              else
                puts "Skipped...repository type not supported yet" if verbose
              end
            end.compact
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
Icarus-Mod-Tools-1.8.2.1 lib/icarus/mod/tools/sync/proginfo.rb
Icarus-Mod-Tools-1.8.2 lib/icarus/mod/tools/sync/proginfo.rb