Class: Manifestly::ManifestItem
- Inherits:
-
Object
- Object
- Manifestly::ManifestItem
show all
- Defined in:
- lib/manifestly/manifest_item.rb
Defined Under Namespace
Classes: InvalidManifestItem, MultipleSameNameRepositories, RepositoryNotFound
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(repository) ⇒ ManifestItem
Returns a new instance of ManifestItem.
8
9
10
11
|
# File 'lib/manifestly/manifest_item.rb', line 8
def initialize(repository)
@repository = repository
@commit = repository.current_commit
end
|
Instance Attribute Details
#commit ⇒ Object
Returns the value of attribute commit.
55
56
57
|
# File 'lib/manifestly/manifest_item.rb', line 55
def commit
@commit
end
|
#repository ⇒ Object
Returns the value of attribute repository.
56
57
58
|
# File 'lib/manifestly/manifest_item.rb', line 56
def repository
@repository
end
|
Class Method Details
.from_file_string(string, repositories) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/manifestly/manifest_item.rb', line 37
def self.from_file_string(string, repositories)
repo_name, sha = string.split('@').collect(&:strip)
raise(InvalidManifestItem, string) if repo_name.blank? || sha.blank?
matching_repositories = repositories.select do |repo|
repo.display_name == repo_name
end
raise(MultipleSameNameRepositories, repo_name) if matching_repositories.size > 1
raise(RepositoryNotFound, repo_name) if matching_repositories.empty?
repository = matching_repositories.first
item = ManifestItem.new(repository)
item.set_commit_by_sha(sha)
item
end
|
Instance Method Details
#checkout_commit!(fetch_if_unfound = false) ⇒ Object
29
30
31
|
# File 'lib/manifestly/manifest_item.rb', line 29
def checkout_commit!(fetch_if_unfound=false)
@repository.checkout_commit(@commit.sha, fetch_if_unfound)
end
|
#fetch ⇒ Object
25
26
27
|
# File 'lib/manifestly/manifest_item.rb', line 25
def fetch
@repository.fetch
end
|
#repository_name ⇒ Object
13
14
15
|
# File 'lib/manifestly/manifest_item.rb', line 13
def repository_name
@repository.display_name
end
|
#set_commit_by_index(index) ⇒ Object
17
18
19
|
# File 'lib/manifestly/manifest_item.rb', line 17
def set_commit_by_index(index)
@commit = @repository.commits[index]
end
|
#set_commit_by_sha(sha) ⇒ Object
21
22
23
|
# File 'lib/manifestly/manifest_item.rb', line 21
def set_commit_by_sha(sha)
@commit = @repository.find_commit(sha)
end
|
#to_file_string ⇒ Object
33
34
35
|
# File 'lib/manifestly/manifest_item.rb', line 33
def to_file_string
"#{repository_name} @ #{commit.sha}"
end
|