Class: Yoda::Store::Objects::ProjectStatus::BundleStatus

Inherits:
Object
  • Object
show all
Includes:
Serializable
Defined in:
lib/yoda/store/objects/project_status.rb

Overview

Remember gem dependencies and loaded gems

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Serializable

#derive, included, #to_json

Constructor Details

#initialize(gem_statuses:, std_status:) ⇒ BundleStatus

Returns a new instance of BundleStatus.

Parameters:



50
51
52
53
# File 'lib/yoda/store/objects/project_status.rb', line 50

def initialize(gem_statuses:, std_status:)
  @gem_statuses = gem_statuses
  @std_status = std_status
end

Instance Attribute Details

#gem_statusesArray<GemStatus> (readonly)

Returns:



35
36
37
# File 'lib/yoda/store/objects/project_status.rb', line 35

def gem_statuses
  @gem_statuses
end

#std_statusStdStatus (readonly)

Returns:



38
39
40
# File 'lib/yoda/store/objects/project_status.rb', line 38

def std_status
  @std_status
end

Class Method Details

.initial_build(specs) ⇒ BundleStatus

Parameters:

  • specs (Array<Bundler::LazySpecification>)

Returns:



42
43
44
45
46
# File 'lib/yoda/store/objects/project_status.rb', line 42

def self.initial_build(specs)
  gem_statuses = specs.map { |spec| ProjectStatus::GemStatus.initial_build(spec) }
  std_status = StdStatus.initial_build
  new(gem_statuses: gem_statuses, std_status: std_status)
end

Instance Method Details

#[](name) ⇒ GemStatus?

Parameters:

  • name (String)

Returns:



61
62
63
# File 'lib/yoda/store/objects/project_status.rb', line 61

def [](name)
  dictionary[name]
end

#all_present?true, false

Returns:

  • (true, false)


66
67
68
# File 'lib/yoda/store/objects/project_status.rb', line 66

def all_present?
  gem_statuses.all?(&:present?) && std_status.all_present?
end

#not_present_gemsArray<GemStatus>

Returns:



76
77
78
# File 'lib/yoda/store/objects/project_status.rb', line 76

def not_present_gems
  gem_statuses.reject(&:present?)
end

#present_gemsArray<GemStatus>

Returns:



71
72
73
# File 'lib/yoda/store/objects/project_status.rb', line 71

def present_gems
  gem_statuses.select(&:present?)
end

#to_hObject



55
56
57
# File 'lib/yoda/store/objects/project_status.rb', line 55

def to_h
  { gem_statuses: gem_statuses, std_status: std_status }
end