Class: Mnenv::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/mnenv/repository.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data_dir: nil, update: false) ⇒ Repository

Returns a new instance of Repository.



25
26
27
28
29
30
31
# File 'lib/mnenv/repository.rb', line 25

def initialize(data_dir: nil, update: false)
  @data_dir = data_dir || cli_data_dir || default_data_dir
  @versions_file_path = File.join(@data_dir, 'versions.yaml')
  @versions_cache = {}
  @update = update
  load
end

Class Attribute Details

.versions_managerObject



11
12
13
# File 'lib/mnenv/repository.rb', line 11

def versions_manager
  @versions_manager ||= VersionsManager.new
end

Instance Attribute Details

#data_dirObject (readonly)

Returns the value of attribute data_dir.



23
24
25
# File 'lib/mnenv/repository.rb', line 23

def data_dir
  @data_dir
end

#versions_file_pathObject (readonly)

Returns the value of attribute versions_file_path.



23
24
25
# File 'lib/mnenv/repository.rb', line 23

def versions_file_path
  @versions_file_path
end

Class Method Details

.update_versionsObject

Force update the versions data



18
19
20
# File 'lib/mnenv/repository.rb', line 18

def update_versions
  versions_manager.update
end

Instance Method Details

#allObject



35
# File 'lib/mnenv/repository.rb', line 35

def all = @versions_cache.values.sort

#countObject



39
# File 'lib/mnenv/repository.rb', line 39

def count = @versions_cache.size

#exists?(version_number) ⇒ Boolean

Returns:

  • (Boolean)


41
# File 'lib/mnenv/repository.rb', line 41

def exists?(version_number) = @versions_cache.key?(version_number)

#find(version_number) ⇒ Object



33
# File 'lib/mnenv/repository.rb', line 33

def find(version_number) = @versions_cache[version_number]

#latestObject



37
# File 'lib/mnenv/repository.rb', line 37

def latest = all.last

#save(version) ⇒ Object



43
44
45
46
# File 'lib/mnenv/repository.rb', line 43

def save(version)
  @versions_cache[version.version] = version
  persist
end

#save_all(versions) ⇒ Object



48
49
50
51
# File 'lib/mnenv/repository.rb', line 48

def save_all(versions)
  versions.each { |v| @versions_cache[v.version] = v }
  persist
end