Module: Dapp::Dimg::Dimg::GitArtifact

Included in:
Dapp::Dimg::Dimg
Defined in:
lib/dapp/dimg/dimg/git_artifact.rb

Instance Method Summary collapse

Instance Method Details

#generate_git_artifacts(repo, **git_artifact_options) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 31

def generate_git_artifacts(repo, **git_artifact_options)
  [].tap do |artifacts|
    artifacts << (artifact = ::Dapp::Dimg::GitArtifact.new(repo, self, **git_artifact_options))
    artifacts.concat(generate_git_embedded_artifacts(artifact))
  end.select do |artifact|
    !artifact.empty?
  end
end

#generate_git_embedded_artifacts(artifact) ⇒ Object



40
41
42
43
44
45
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 40

def generate_git_embedded_artifacts(artifact)
  [].tap do |artifacts|
    artifacts.concat(submodules_artifacts = artifact.embedded_artifacts)
    artifacts.concat(submodules_artifacts.map(&method(:generate_git_embedded_artifacts)).flatten)
  end
end

#git_artifactsObject



5
6
7
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 5

def git_artifacts
  [*local_git_artifacts, *remote_git_artifacts].compact
end

#local_git_artifactsObject



9
10
11
12
13
14
15
16
17
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 9

def local_git_artifacts
  @local_git_artifact_list ||= [].tap do |artifacts|
    break artifacts if (local_git_artifacts = Array(config._git_artifact._local)).empty?
    repo = GitRepo::Own.new(dapp)
    local_git_artifacts.map do |ga_config|
      artifacts.concat(generate_git_artifacts(repo, **ga_config._artifact_options))
    end
  end
end

#remote_git_artifactsObject



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 19

def remote_git_artifacts
  @remote_git_artifact_list ||= [].tap do |artifacts|
    Array(config._git_artifact._remote).each do |ga_config|
      repo = GitRepo::Remote.get_or_create(dapp, ga_config._name,
                                           url: ga_config._url,
                                           branch: ga_config._branch,
                                           ignore_git_fetch: ignore_git_fetch)
      artifacts.concat(generate_git_artifacts(repo, **ga_config._artifact_options))
    end
  end
end