Class: CarthageCache::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/carthage_cache/application.rb

Constant Summary collapse

CACHE_DIR_NAME =
"carthage_cache"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_path, verbose, config, repository: Repository, terminal: Terminal, swift_version_resolver: SwiftVersionResolver) ⇒ Application

Returns a new instance of Application.



15
16
17
18
19
20
21
# File 'lib/carthage_cache/application.rb', line 15

def initialize(project_path, verbose, config, repository: Repository, terminal: Terminal, swift_version_resolver: SwiftVersionResolver)
  @terminal = terminal.new(verbose)
  @archiver = Archiver.new
  @config = Configurator.new(@terminal, project_path, config).config
  @repository = repository.new(@config.bucket_name, @config.hash_object[:aws_s3_client_options])
  @project = Project.new(project_path, CACHE_DIR_NAME, @terminal, @config.tmpdir, swift_version_resolver.new)
end

Instance Attribute Details

#archiverObject (readonly)

Returns the value of attribute archiver.



10
11
12
# File 'lib/carthage_cache/application.rb', line 10

def archiver
  @archiver
end

#configObject (readonly)

Returns the value of attribute config.



13
14
15
# File 'lib/carthage_cache/application.rb', line 13

def config
  @config
end

#projectObject (readonly)

Returns the value of attribute project.



12
13
14
# File 'lib/carthage_cache/application.rb', line 12

def project
  @project
end

#repositoryObject (readonly)

Returns the value of attribute repository.



11
12
13
# File 'lib/carthage_cache/application.rb', line 11

def repository
  @repository
end

#terminalObject (readonly)

Returns the value of attribute terminal.



9
10
11
# File 'lib/carthage_cache/application.rb', line 9

def terminal
  @terminal
end

Instance Method Details

#archive_exist?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/carthage_cache/application.rb', line 23

def archive_exist?
  repository.archive_exist?(project.archive_filename)
end

#create_archive(force = false, prune = false, prune_white_list = nil) ⇒ Object



37
38
39
40
41
42
# File 'lib/carthage_cache/application.rb', line 37

def create_archive(force = false, prune = false, prune_white_list = nil)
  if force || !archive_exist?
    prune_build_directory(prune_white_list) if prune
    archive_builder.build
  end
end

#install_archiveObject



27
28
29
30
31
32
33
34
35
# File 'lib/carthage_cache/application.rb', line 27

def install_archive
  if archive_exist?
    archive_installer.install
    true
  else
    terminal.puts "There is no cached archive for the current Cartfile.resolved file."
    false
  end
end

#prune_build_directory(white_list) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/carthage_cache/application.rb', line 44

def prune_build_directory(white_list)
  if white_list && File.exist?(white_list)
    terminal.vputs "Prunning build directory with white list '#{white_list}' ..."
    white_list = YAML.load(File.read(white_list))
  else
    white_list = {}
    terminal.vputs "Prunning build directory ..."
  end
  build_collector.delete_unused_frameworks(white_list)
end