Class: AptControl::PackageState

Inherits:
Object
  • Object
show all
Defined in:
lib/apt_control/package_states.rb

Overview

Brings together the state of a particular package in a particular distribution

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ PackageState

Returns a new instance of PackageState.



34
35
36
37
38
39
# File 'lib/apt_control/package_states.rb', line 34

def initialize(options)
  @dist          = options.fetch(:dist)
  @rule          = options.fetch(:rule)
  @apt_site      = options.fetch(:apt_site)
  @build_archive = options.fetch(:build_archive)
end

Instance Attribute Details

#distObject (readonly)

Returns the value of attribute dist.



32
33
34
# File 'lib/apt_control/package_states.rb', line 32

def dist
  @dist
end

#ruleObject (readonly)

Returns the value of attribute rule.



32
33
34
# File 'lib/apt_control/package_states.rb', line 32

def rule
  @rule
end

Instance Method Details

#availableObject



45
46
47
# File 'lib/apt_control/package_states.rb', line 45

def available
  @available ||= (@build_archive[rule.package_name] || [])
end

#available?Boolean

Returns:

  • (Boolean)


51
# File 'lib/apt_control/package_states.rb', line 51

def available? ;   available.any?    ; end

#includeable?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/apt_control/package_states.rb', line 57

def includeable?
  available? && rule.includeable?(included, available)
end

#includeable_toObject



61
62
63
# File 'lib/apt_control/package_states.rb', line 61

def includeable_to
  rule.includeable_to(available)
end

#includedObject



41
42
43
# File 'lib/apt_control/package_states.rb', line 41

def included
  @included ||= @apt_site.included_version(dist.name, rule.package_name)
end

#included?Boolean

Returns:

  • (Boolean)


50
# File 'lib/apt_control/package_states.rb', line 50

def included? ;    !! included       ; end

#package_nameObject



49
# File 'lib/apt_control/package_states.rb', line 49

def package_name ; rule.package_name ; end

#satisfied?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/apt_control/package_states.rb', line 53

def satisfied?
  included? && rule.satisfied_by?(included)
end

#status_lineObject



65
66
67
68
69
70
71
72
73
74
# File 'lib/apt_control/package_states.rb', line 65

def status_line
  [
    dist.name,
    package_name,
    "(#{rule.restriction} #{rule.version})",
    "#{includeable? ? 'I' : '.'}#{satisfied? ? 'S' : '.'}",
    "included=#{included || '<none>'}",
    "available=#{available? ? available.join(', ') : '<none>'} "
  ].join(' ')
end