Class: Space::Model::Repos
- Inherits:
-
Object
- Object
- Space::Model::Repos
- 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
-
#paths ⇒ Object
Returns the value of attribute paths.
-
#project ⇒ Object
Returns the value of attribute project.
-
#scope ⇒ Object
Returns the value of attribute scope.
Instance Method Summary collapse
- #all ⇒ Object
- #find_by_name(name) ⇒ Object
- #find_by_name_or_number(repo) ⇒ Object
- #find_by_number(number) ⇒ Object
-
#initialize(project, paths) ⇒ Repos
constructor
A new instance of Repos.
- #names ⇒ Object
- #refresh ⇒ Object
- #scoped? ⇒ Boolean
- #select_by_names(names) ⇒ Object
- #select_by_names_or_numbers(repos) ⇒ Object
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
#paths ⇒ Object
Returns the value of attribute paths.
6 7 8 |
# File 'lib/space/model/repos.rb', line 6 def paths @paths end |
#project ⇒ Object
Returns the value of attribute project.
6 7 8 |
# File 'lib/space/model/repos.rb', line 6 def project @project end |
#scope ⇒ Object
Returns the value of attribute scope.
6 7 8 |
# File 'lib/space/model/repos.rb', line 6 def scope @scope end |
Instance Method Details
#all ⇒ Object
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 |
#names ⇒ Object
17 18 19 |
# File 'lib/space/model/repos.rb', line 17 def names @names ||= all.map(&:name) end |
#refresh ⇒ Object
54 55 56 |
# File 'lib/space/model/repos.rb', line 54 def refresh all.each(&:refresh) end |
#scoped? ⇒ 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 |