Class: Txgh::Puller

Inherits:
Object
  • Object
show all
Defined in:
lib/txgh/puller.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, repo, branch = nil) ⇒ Puller

Returns a new instance of Puller.



5
6
7
8
9
# File 'lib/txgh/puller.rb', line 5

def initialize(project, repo, branch = nil)
  @project = project
  @repo = repo
  @branch = branch
end

Instance Attribute Details

#branchObject (readonly)

Returns the value of attribute branch.



3
4
5
# File 'lib/txgh/puller.rb', line 3

def branch
  @branch
end

#projectObject (readonly)

Returns the value of attribute project.



3
4
5
# File 'lib/txgh/puller.rb', line 3

def project
  @project
end

#repoObject (readonly)

Returns the value of attribute repo.



3
4
5
# File 'lib/txgh/puller.rb', line 3

def repo
  @repo
end

Instance Method Details

#pullObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/txgh/puller.rb', line 11

def pull
  existing_resources = project.api.get_resources(project.name)
  slugs = existing_resources.map { |resource| resource['slug'] }

  resources = tx_config.resources.each_with_object([]) do |tx_resource, ret|
    if repo.process_all_branches?
      tx_resource = Txgh::TxBranchResource.new(tx_resource, branch)
    end

    next unless slugs.include?(tx_resource.resource_slug)
    ret << tx_resource
  end

  pull_resources(resources)
end

#pull_resource(tx_resource, languages = nil) ⇒ Object



33
34
35
36
37
# File 'lib/txgh/puller.rb', line 33

def pull_resource(tx_resource, languages = nil)
  (languages || project.languages).each do |language|
    committer.commit_resource(tx_resource, branch, language)
  end
end

#pull_resources(tx_resources, languages = nil) ⇒ Object



27
28
29
30
31
# File 'lib/txgh/puller.rb', line 27

def pull_resources(tx_resources, languages = nil)
  tx_resources.each do |tx_resource|
    pull_resource(tx_resource, languages)
  end
end

#pull_slug(resource_slug, languages = nil) ⇒ Object



39
40
41
# File 'lib/txgh/puller.rb', line 39

def pull_slug(resource_slug, languages = nil)
  pull_resource(tx_config.resource(resource_slug, branch), languages)
end