Class: Canpe::RepositoryStore

Inherits:
Object
  • Object
show all
Defined in:
lib/canpe/repository_store.rb

Constant Summary collapse

LOAD_PATHS =
[Dir.pwd, ENV['HOME'], Gem::Specification.find_by_name('canpe').gem_dir]
DEFAULT_REPOSITORY_DIR =
'.canpe_repos'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ RepositoryStore

Returns a new instance of RepositoryStore.



30
31
32
# File 'lib/canpe/repository_store.rb', line 30

def initialize(path)
  @path = path
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



10
11
12
# File 'lib/canpe/repository_store.rb', line 10

def path
  @path
end

Class Method Details

.repository_listObject



25
26
27
# File 'lib/canpe/repository_store.rb', line 25

def repository_list
  @_repository_list ||= repository_stores.map { |store| store.repository_list }.flatten
end

.repository_storesObject



16
17
18
19
20
21
22
23
# File 'lib/canpe/repository_store.rb', line 16

def repository_stores
  stores = []
  LOAD_PATHS.each do |path|
    repository_store_path = File.join(path, DEFAULT_REPOSITORY_DIR)
    stores << new(path) if File.directory?(repository_store_path)
  end
  stores
end

Instance Method Details

#nameObject



55
56
57
58
59
60
61
# File 'lib/canpe/repository_store.rb', line 55

def name
  if path == ENV['HOME']
    'HOME'
  else
    Pathname.new(path).relative_path_from(Pathname.new(ENV['HOME']))
  end
end

#repositories_rootObject



42
43
44
# File 'lib/canpe/repository_store.rb', line 42

def repositories_root
  File.join(root_url, repository_dir)
end

#repository_dirObject



38
39
40
# File 'lib/canpe/repository_store.rb', line 38

def repository_dir
  DEFAULT_REPOSITORY_DIR
end

#repository_listObject



46
47
48
49
50
51
52
53
# File 'lib/canpe/repository_store.rb', line 46

def repository_list
  repository_list = []
  dir_list = Dir.glob(File.join(repositories_root, '*'))
  dir_list.each do |dir_path|
    repository_list << Repository.new(File.basename(dir_path), self) if File.directory? dir_path
  end
  repository_list
end

#root_urlObject



34
35
36
# File 'lib/canpe/repository_store.rb', line 34

def root_url
  path
end