Sha256: 65a6e8c9b1cce29fcb69746bbdc425ae954a516a7b516fbf4297bf648a05461d

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

require 'git'
require_relative 'l_cache'
require_relative 'file_path'

module LgPodPlugin

  class LDownloader

    REQUIRED_ATTRS ||= %i[git real_name name commit branch tag options].freeze
    attr_accessor(*REQUIRED_ATTRS)

    def initialize(name, options = {})
      self.name = name
      self.options = Hash.new.deep_merge(options)
      self.git = self.options[:git]
      self.tag = self.options[:tag]
      self.branch = self.options[:branch]
      self.commit = self.options[:commit]
    end

    # 预下载处理
    def pre_download_pod
      if self.branch
        LgPodPlugin.log_green "Using `#{name}` (#{branch})"
      else
        LgPodPlugin.log_green "Using `#{name}`"
      end
      hash_map = LRequest.shared.get_cache_key_params
      # 发现本地有缓存, 不需要更新缓存
      if LRequest.shared.single_git
        need_download = LRequest.shared.cache.find_pod_cache(name, hash_map)
        unless need_download
          hash_map.delete(:commit)
          need_download = LRequest.shared.cache.find_pod_cache(name, hash_map)
        end
      else
        need_download = LRequest.shared.cache.find_pod_cache(name, hash_map)
      end
      if need_download
        LgPodPlugin.log_green "find the new commit of `#{name}`, Git downloading now."
        # 本地 git 下载 pod 目录
        LRequest.shared.git_util.pre_download_git_repository
      else
        is_delete = LRequest.shared.request_params["is_delete"] ||= false
        if self.real_name == self.name
          LRequest.shared.libs.delete(self.name) if is_delete
        else
          LRequest.shared.libs.delete(self.real_name) if is_delete
        end
        LgPodPlugin.log_green "find the cache of `#{name}`, you can use it now."
      end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lg_pod_plugin-1.1.3 lib/lg_pod_plugin/downloader.rb
lg_pod_plugin-1.1.2 lib/lg_pod_plugin/downloader.rb
lg_pod_plugin-1.1.1 lib/lg_pod_plugin/downloader.rb