Class: RiotKit::Services::DataDragon::Sync

Inherits:
Object
  • Object
show all
Defined in:
lib/riot_kit/services/data_dragon/sync.rb

Constant Summary collapse

DEFAULT_OUTPUT_DIR =
File.expand_path('../../data/data_dragon', __dir__)

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output_dir:, locale:, client:, config:) ⇒ Sync

Returns a new instance of Sync.



26
27
28
29
30
31
# File 'lib/riot_kit/services/data_dragon/sync.rb', line 26

def initialize(output_dir:, locale:, client:, config:)
  @output_dir = output_dir
  @locale = locale
  @client = client
  @config = config
end

Class Method Details

.call(output_dir: DEFAULT_OUTPUT_DIR, locale: 'pt_BR', client: nil, config: RiotKit.config) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/riot_kit/services/data_dragon/sync.rb', line 17

def self.call(output_dir: DEFAULT_OUTPUT_DIR, locale: 'pt_BR', client: nil, config: RiotKit.config)
  new(
    output_dir: output_dir,
    locale: locale,
    client: client || Clients::DataDragon.new(config: config),
    config: config
  ).execute
end

Instance Method Details

#executeObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/riot_kit/services/data_dragon/sync.rb', line 33

def execute
  FileUtils.mkdir_p(@output_dir)

  version = fetch_latest_version
  File.write(File.join(@output_dir, 'version.txt'), "#{version}\n")

  write_items(version)
  write_champions(version)
  write_summoner_spells(version)
  write_runes(version)

  Registries::DataDragon.reload!

  RiotKit::Result.success(version)
rescue Errors::Base => e
  RiotKit::Result.failure(e)
rescue StandardError => e
  RiotKit::Result.failure(Errors::DataDragonError.new(e.message))
end