class Deliver::Loader::LanguageFolder

A class that represents language folder under screenshots or metadata folder

Attributes

language[R]

@return [String] A normalized language name that corresponds to the directory's name

path[R]

Public Class Methods

allowed_directory_names_with_case() click to toggle source
# File deliver/lib/deliver/loader.rb, line 38
def self.allowed_directory_names_with_case
  available_languages + SPECIAL_DIR_NAMES
end
available_languages() click to toggle source
# File deliver/lib/deliver/loader.rb, line 32
def self.available_languages
  # 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
  # Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is avilable)
  Deliver::Languages::ALL_LANGUAGES
end
new(path, nested: false) click to toggle source

@param path [String] A directory path otherwise this initializer fails @param nested [Boolan] Whether given path is nested of another special directory.

This affects `expandable?` to return `false` when this set to `true`.
# File deliver/lib/deliver/loader.rb, line 45
def initialize(path, nested: false)
  raise(ArgumentError, "Given path must be a directory path - #{path}") unless File.directory?(path)
  @path = path
  @language = self.class.available_languages.find { |lang| basename.casecmp?(lang) }
  @nested = nested
end

Public Instance Methods

basename() click to toggle source
# File deliver/lib/deliver/loader.rb, line 76
def basename
  File.basename(@path)
end
expandable?() click to toggle source
# File deliver/lib/deliver/loader.rb, line 60
def expandable?
  !nested? && EXPANDABLE_DIR_NAMES.any? { |name| name.casecmp?(basename) }
end
file_paths(extensions = '{png,jpg,jpeg}') click to toggle source
# File deliver/lib/deliver/loader.rb, line 68
def file_paths(extensions = '{png,jpg,jpeg}')
  Dir.glob(File.join(path, "*.#{extensions}"), File::FNM_CASEFOLD).sort
end
framed_file_paths(extensions = '{png,jpg,jpeg}') click to toggle source
# File deliver/lib/deliver/loader.rb, line 72
def framed_file_paths(extensions = '{png,jpg,jpeg}')
  Dir.glob(File.join(path, "*_framed.#{extensions}"), File::FNM_CASEFOLD).sort
end
nested?() click to toggle source
# File deliver/lib/deliver/loader.rb, line 52
def nested?
  @nested
end
skip?() click to toggle source
# File deliver/lib/deliver/loader.rb, line 64
def skip?
  EXCEPTION_DIRECTORIES.map(&:downcase).include?(basename.downcase)
end
valid?() click to toggle source
# File deliver/lib/deliver/loader.rb, line 56
def valid?
  self.class.allowed_directory_names_with_case.any? { |name| name.casecmp?(basename) }
end