Sha256: 6d21361ed860a13c3cfd6e57863c14a994cc9a408af2c13e5d88f61a8a1a6696

Contents?: true

Size: 1.83 KB

Versions: 77

Compression:

Stored size: 1.83 KB

Contents

require 'fastimage'

require_relative 'frame_downloader'
require_relative 'module'
require_relative 'screenshot'
require_relative 'device_types'

module Frameit
  class Runner
    def initialize
      downloader = FrameDownloader.new
      unless downloader.frames_exist?
        downloader.download_frames
      end
    end

    def run(path, color = nil)
      unless color
        color = Frameit::Color::BLACK
        color = Frameit::Color::SILVER if Frameit.config[:white] || Frameit.config[:silver]
        color = Frameit::Color::GOLD if Frameit.config[:gold]
        color = Frameit::Color::ROSE_GOLD if Frameit.config[:rose_gold]
      end

      screenshots = Dir.glob("#{path}/**/*.{png,PNG}").uniq # uniq because thanks to {png,PNG} there are duplicates

      if screenshots.count > 0
        screenshots.each do |full_path|
          next if full_path.include?("_framed.png")
          next if full_path.include?(".itmsp/") # a package file, we don't want to modify that
          next if full_path.include?("device_frames/") # these are the device frames the user is using
          device = full_path.rpartition('/').last.partition('-').first # extract device name
          if device.downcase.include?("watch")
            UI.error("Apple Watch screenshots are not framed: '#{full_path}'")
            next # we don't care about watches right now
          end

          Helper.show_loading_indicator("Framing screenshot '#{full_path}'")

          begin
            screenshot = Screenshot.new(full_path, color)
            screenshot.frame!
          rescue => ex
            UI.error(ex.to_s)
            UI.error("Backtrace:\n\t#{ex.backtrace.join("\n\t")}") if FastlaneCore::Globals.verbose?
          end
        end
      else
        UI.error("Could not find screenshots in current directory: '#{File.expand_path(path)}'")
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
fastlane-2.115.0.beta.20190122200028 frameit/lib/frameit/runner.rb
fastlane-2.115.0.beta.20190120200101 frameit/lib/frameit/runner.rb
fastlane-2.115.0.beta.20190119200019 frameit/lib/frameit/runner.rb
fastlane-2.115.0.beta.20190118200015 frameit/lib/frameit/runner.rb
fastlane-2.115.0.beta.20190117200016 frameit/lib/frameit/runner.rb
fastlane-2.114.0 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190116200018 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190115200110 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190114200053 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190113200019 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190112200032 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190111200053 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190110200051 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190109200053 frameit/lib/frameit/runner.rb
fastlane-2.114.0.beta.20190108200048 frameit/lib/frameit/runner.rb
fastlane-2.113.0 frameit/lib/frameit/runner.rb
fastlane-2.113.0.beta.20190107200010 frameit/lib/frameit/runner.rb
fastlane-2.113.0.beta.20190106200016 frameit/lib/frameit/runner.rb
fastlane-2.113.0.beta.20190105200036 frameit/lib/frameit/runner.rb
fastlane-2.113.0.beta.20190104200013 frameit/lib/frameit/runner.rb