# frozen_string_literal: true require_relative 'image' module XCAssets class ImageSet attr_reader :name attr_reader :images def initialize(name) @name = name @images = [] scale1_image scale2_image scale3_image end def scale1_image scale_image('1x') end def scale2_image scale_image('2x') end def scale3_image scale_image('3x') end def contents { :info => { :author => :xcode, :version => 1 }, :images => @images.map do |image| image.contents end } end private def scale_image(scale) image = @images.find {|i|i.scale == scale} unless image image = Image.new image.scale = scale @images << image end image end end end