class XcodeAssetsGen::LaunchImageGen

Public Instance Methods

gen_launch_images(assets_path, launch_image_path) click to toggle source
# File lib/xcode_assets_gen/launch_image_gen.rb, line 40
def gen_launch_images assets_path, launch_image_path
  puts Rainbow("Start generate launch images").bright
  config = load_config
  datas = []
  asset_launch_path = "LaunchImage.launchimage"
  launch_image_asset_path = File.join(assets_path, asset_launch_path)
  FileUtils::mkdir_p launch_image_asset_path
  Dir.glob(File.join(launch_image_path, "*.png")) do |file|
    image = MiniMagick::Image.open(file)
    size = "#{image.width}x#{image.height}"
    filename = "launch_image#{size}.png"

    if get_launch_items(config, size).count != 0
      FileUtils.cp(file, File.join(launch_image_asset_path, filename))
      datas = set_launch_to_array(datas, config, size, filename)
      puts Rainbow("Find #{File.basename(file)} size is #{size} CP TO #{asset_launch_path}/#{filename}").green
    else
      puts Rainbow("Find #{File.basename(file)} size is #{size} not a launch image").yellow
    end
  end
  content = {
    "images": datas.map { |item| item["data"] },
    "info": {
      "version": 1,
      "author": "xcode"
    }
  }
  File.open(File.join(launch_image_asset_path, "Contents.json"), "w") do |f|
    f.write(content.to_json)
  end
  puts Rainbow("Finish generate LaunchImages").green
end
get_launch_items(config, size) click to toggle source
# File lib/xcode_assets_gen/launch_image_gen.rb, line 14
def get_launch_items config, size
  config.flatten(1).select { |item| item["size"] == size }
end
get_launch_items_with_set(config, size, filename) click to toggle source
# File lib/xcode_assets_gen/launch_image_gen.rb, line 18
def get_launch_items_with_set config, size, filename
  datas = []
  config.each do |items|
    for item in items
      if item["size"] == size
        datas += items.each { |item| item["data"]["filename"] = filename if item["size"] == size}
        break
      end
    end
  end
  datas
end
load_config() click to toggle source
# File lib/xcode_assets_gen/launch_image_gen.rb, line 10
def load_config
  return YAML.load_file(File.expand_path('../launch_image_size.yml', __FILE__))
end
set_launch_to_array(datas, config, size, filename) click to toggle source
# File lib/xcode_assets_gen/launch_image_gen.rb, line 31
def set_launch_to_array datas, config, size, filename
  if (datas.select { |item| item["size"] == size }).count != 0
    datas.each { |item| item["data"]["filename"] = filename if item["size"] == size }
  else
    datas += get_launch_items_with_set(config, size, filename)
  end
  datas
end