Class: Debendencies::PackageDependency

Inherits:
Object
  • Object
show all
Defined in:
lib/debendencies/package_dependency.rb

Overview

Represents a single Debian package dependency, e.g., ‘libc`. Could potentially have version constraints, e.g., `libc (>= 2.28, <= 2.30)`.

‘version_constraints` is either nil or non-empty.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, version_constraints = nil) ⇒ PackageDependency

Returns a new instance of PackageDependency.



11
12
13
14
# File 'lib/debendencies/package_dependency.rb', line 11

def initialize(name, version_constraints = nil)
  @name = name
  @version_constraints = version_constraints
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/debendencies/package_dependency.rb', line 9

def name
  @name
end

#version_constraintsObject (readonly)

Returns the value of attribute version_constraints.



9
10
11
# File 'lib/debendencies/package_dependency.rb', line 9

def version_constraints
  @version_constraints
end

Instance Method Details

#as_jsonObject



26
27
28
29
30
# File 'lib/debendencies/package_dependency.rb', line 26

def as_json
  result = { name: name }
  result[:version_constraints] = version_constraints.map { |vc| vc.as_json } if version_constraints
  result
end

#eql?(other) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


16
17
18
# File 'lib/debendencies/package_dependency.rb', line 16

def eql?(other)
  @name == other.name && @version_constraints == other.version_constraints
end

#hashObject



22
23
24
# File 'lib/debendencies/package_dependency.rb', line 22

def hash
  @name.hash ^ @version_constraints.hash
end

#to_sObject



32
33
34
35
36
37
38
# File 'lib/debendencies/package_dependency.rb', line 32

def to_s
  if version_constraints.nil?
    name
  else
    "#{name} (#{version_constraints.map { |vc| vc.to_s }.join(", ")})"
  end
end