Class: Space::Model::Repos

Inherits:
Object
  • Object
show all
Defined in:
lib/space/model/repos.rb,
lib/space/model/repos/scope.rb,
lib/space/model/repos/collection.rb

Defined Under Namespace

Classes: Collection

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, paths) ⇒ Repos

Returns a new instance of Repos.



8
9
10
11
# File 'lib/space/model/repos.rb', line 8

def initialize(project, paths)
  @project = project
  @paths = paths
end

Instance Attribute Details

#pathsObject

Returns the value of attribute paths.



6
7
8
# File 'lib/space/model/repos.rb', line 6

def paths
  @paths
end

#projectObject

Returns the value of attribute project.



6
7
8
# File 'lib/space/model/repos.rb', line 6

def project
  @project
end

#scopeObject

Returns the value of attribute scope.



6
7
8
# File 'lib/space/model/repos.rb', line 6

def scope
  @scope
end

Instance Method Details

#allObject



13
14
15
# File 'lib/space/model/repos.rb', line 13

def all
  @all ||= Collection.new(self, paths.map { |path| Repo.new(project, path) })
end

#find_by_name(name) ⇒ Object



38
39
40
# File 'lib/space/model/repos.rb', line 38

def find_by_name(name)
  all.detect { |repo| repo.name == name } || raise("cannot find repo by name #{name.inspect}")
end

#find_by_name_or_number(repo) ⇒ Object



34
35
36
# File 'lib/space/model/repos.rb', line 34

def find_by_name_or_number(repo)
  repo =~ /^\d+$/ ? find_by_number(repo.to_i) : find_by_name(repo)
end

#find_by_number(number) ⇒ Object



42
43
44
# File 'lib/space/model/repos.rb', line 42

def find_by_number(number)
  all.detect { |repo| repo.number == number } || raise("cannot find repo by number #{number.inspect}")
end

#namesObject



17
18
19
# File 'lib/space/model/repos.rb', line 17

def names
  @names ||= all.map(&:name)
end

#refreshObject



54
55
56
# File 'lib/space/model/repos.rb', line 54

def refresh
  all.each(&:refresh)
end

#scoped?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/space/model/repos.rb', line 30

def scoped?
  !!@scope
end

#select_by_names(names) ⇒ Object



50
51
52
# File 'lib/space/model/repos.rb', line 50

def select_by_names(names)
  Collection.new(self, all.select { |repo| names.include?(repo.name) })
end

#select_by_names_or_numbers(repos) ⇒ Object



46
47
48
# File 'lib/space/model/repos.rb', line 46

def select_by_names_or_numbers(repos)
  Collection.new(self, repos.map { |repo| find_by_name_or_number(repo) })
end