Class: Space::Models::Repos

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

Defined Under Namespace

Classes: Collection

Instance Attribute Summary collapse

Attributes included from Events

#buffer

Instance Method Summary collapse

Methods included from Events

#buffering, #buffering?, #notify, #observers

Constructor Details

#initialize(project, paths) ⇒ Repos

Returns a new instance of Repos.



10
11
12
13
# File 'lib/space/models/repos.rb', line 10

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

Instance Attribute Details

#pathsObject

Returns the value of attribute paths.



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

def paths
  @paths
end

#projectObject

Returns the value of attribute project.



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

def project
  @project
end

#scopeObject

Returns the value of attribute scope.



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

def scope
  @scope
end

Instance Method Details

#allObject



15
16
17
# File 'lib/space/models/repos.rb', line 15

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

#find_by_name(name) ⇒ Object



36
37
38
# File 'lib/space/models/repos.rb', line 36

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

#namesObject



19
20
21
# File 'lib/space/models/repos.rb', line 19

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

#scoped?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/space/models/repos.rb', line 32

def scoped?
  !!@scope
end

#select_by_names(names) ⇒ Object



40
41
42
# File 'lib/space/models/repos.rb', line 40

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

#subscribe(*args) ⇒ Object



44
45
46
47
# File 'lib/space/models/repos.rb', line 44

def subscribe(*args)
  super
  all.each { |repo| repo.subscribe(*args) }
end