class Pod::Lazy::Repository

Public Class Methods

new(repository) click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 8
def initialize(repository)
  @repository = repository
end

Public Instance Methods

fetch() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 12
def fetch
  @fetched_checksum = read_podfile_checksum()
  if @fetched_checksum.nil?
    Pod::Lazy::Logger.info "Podfile.lock not found"
    @is_generated_pods = true
  elsif @fetched_checksum != read_manifest_checksum()
    Pod::Lazy::Logger.info 'Checksum IS NOT EQUAL'
    Pod::Lazy::Logger.info 'Drop Pods directory'
    `rm -rf Pods`
    file_name = add_xcode_version @fetched_checksum
    @repository.fetch(name: file_name)
    @is_generated_pods = !Dir.exist?('Pods')
  else
    Pod::Lazy::Logger.info 'Checksum IS EQUAL'
    @is_generated_pods = false
  end
end
should_store() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 30
def should_store
  @is_generated_pods || is_modified_pods?
end
store() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 34
def store
  Pod::Lazy::Logger.info "Reason for store: #{store_reason || 'Not reason for store'}"
  @fetched_checksum = @fetched_checksum || read_podfile_checksum()
  file_name = add_xcode_version @fetched_checksum
  @repository.store(name: file_name)
end

Private Instance Methods

add_xcode_version(name) click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 72
def add_xcode_version(name)
    name + "_" + xcode_version
end
is_modified_pods?() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 43
def is_modified_pods?
  @fetched_checksum != read_manifest_checksum()
end
read_checksum_from_lockfile(name) click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 65
def read_checksum_from_lockfile(name)
  path = Pathname.new(name)
  return nil unless path.exist?
  lockfile = Lockfile.from_file(path.realpath)
  lockfile.internal_data['PODFILE CHECKSUM']
end
read_manifest_checksum() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 61
def read_manifest_checksum        
  read_checksum_from_lockfile('./Pods/Manifest.lock')
end
read_podfile_checksum() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 57
def read_podfile_checksum
  read_checksum_from_lockfile('Podfile.lock')
end
store_reason() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 47
def store_reason
  if @is_generated_pods
    "Pods is generated (not cached) so should be stored"
  elsif is_modified_pods?
    "Manifest is modified so should be stored"
  else
    nil
  end
end
xcode_version() click to toggle source
# File lib/cocoapods-lazy/repository.rb, line 76
def xcode_version
    info = `xcodebuild -version`
    info.lines.first.sub!(" ", "_").chomp
end