class SC2Cli::Subcommands::League
Public Class Methods
new(configuration:, options:)
click to toggle source
# File lib/sc2cli/subcommands/league.rb, line 83 def initialize(configuration:, options:) @configuration = configuration name = nil random = nil region = nil season = nil type = nil OptionParser.new do |opts| opts.banner = "Usage: #{$0} #{self.class.name.split("::").last.downcase} [options]" opts.on("-h", "--help", "Prints this help") do @@console.info(opts) exit end opts.on("-n", "--name NAME", String, "League name, such as 'gold' or 'silver'.") do |value| name = value end opts.on("-r", "--region REGION", String, "Region name, such as 'eu' or 'us'. Use configuration region by default.") do |value| region = Shared::Region.new(name: value) end opts.on("-R", "--[no-]random", "Specify for randomly assigned teams. Default is arranged teams.") do |value| random = value end opts.on("-s", "--season SEASON", Integer, "Season number.") do |value| season = value end opts.on("-t", "--type TYPE", String, "League type, such as '1v1' or '2v2'. Default is '1v1'.") do |value| type = value end end.parse! random ||= @@random region ||= @configuration.region type ||= @@type @@console.fatal("League name must be specified!") unless name.kind_of?(String) @@console.fatal("Specified league name: #{name} is not valid!") unless @@valid_codes.key?(name) @@console.fatal("Specified league type: #{type} is not valid!") unless @@valid_types.key?(type) name = @@valid_codes[name] @@console.fatal("Leagues name resolved from code: #{name} is not valid! This should never happen...") unless @@valid_names.key?(name) if random then @@console.fatal("There are no randomly assigned teams for leagues of type: #{type}!") unless @@valid_types[type]["random"] end unless season.kind_of?(Integer) then current_season = Shared::Season.new(configuration: @configuration, region: region) season = current_season.id end @name = name @random = random @region = region @season = season @type = type end
Public Instance Methods
run()
click to toggle source
# File lib/sc2cli/subcommands/league.rb, line 152 def run @@console.info("Finding league information:") @@console.info(" - Name : #{@name}") @@console.info(" - Random: #{@random.to_s}") @@console.info(" - Region: #{@region.description}") @@console.info(" - Season: #{@season.to_s}") @@console.info(" - Type : #{@type}") api_name = @@valid_names[@name]["value"].to_s api_random = @random ? "1" : "0" api_season = @season.to_s api_type = @@valid_types[@type]["value"].to_s colour = @@valid_names[@name]["colour"] path = "#{@@prefix}/#{api_season}/#{api_type}/#{api_random}/#{api_name}" api = Shared::Api.new(configuration: @configuration, region: @region) result = api.get(path: path) tiers = LeagueShared::LeagueTiers.new(name: @name, colour: colour, json: result) @@console.info(tiers.to_s) end