Class: Ukiryu::Definition::VersionResolver::Constraint

Inherits:
Object
  • Object
show all
Defined in:
lib/ukiryu/definition/version_resolver.rb

Overview

Version constraint structure

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(operator, version, raw = nil) ⇒ Constraint

Returns a new instance of Constraint.



16
17
18
19
20
# File 'lib/ukiryu/definition/version_resolver.rb', line 16

def initialize(operator, version, raw = nil)
  @operator = operator
  @version = version
  @raw = raw || "#{operator} #{version}"
end

Instance Attribute Details

#operatorObject (readonly)

Returns the value of attribute operator.



14
15
16
# File 'lib/ukiryu/definition/version_resolver.rb', line 14

def operator
  @operator
end

#rawObject (readonly)

Returns the value of attribute raw.



14
15
16
# File 'lib/ukiryu/definition/version_resolver.rb', line 14

def raw
  @raw
end

#versionObject (readonly)

Returns the value of attribute version.



14
15
16
# File 'lib/ukiryu/definition/version_resolver.rb', line 14

def version
  @version
end

Class Method Details

.exact(version) ⇒ Object

Exact version constraint



23
24
25
# File 'lib/ukiryu/definition/version_resolver.rb', line 23

def self.exact(version)
  new(:==, version, version)
end

.max(version) ⇒ Object

Maximum version constraint (inclusive)



33
34
35
# File 'lib/ukiryu/definition/version_resolver.rb', line 33

def self.max(version)
  new(:<=, version)
end

.min(version) ⇒ Object

Minimum version constraint (inclusive)



28
29
30
# File 'lib/ukiryu/definition/version_resolver.rb', line 28

def self.min(version)
  new(:>=, version)
end

.pessimistic(version) ⇒ Object

Pessimistic version constraint



38
39
40
# File 'lib/ukiryu/definition/version_resolver.rb', line 38

def self.pessimistic(version)
  new('~>'.to_sym, version)
end

.range(min_version, max_version) ⇒ Object

Range constraint



43
44
45
46
# File 'lib/ukiryu/definition/version_resolver.rb', line 43

def self.range(min_version, max_version)
  # This is represented as two constraints internally
  [new(:>=, min_version), new(:<, max_version)]
end

Instance Method Details

#to_sObject



48
49
50
# File 'lib/ukiryu/definition/version_resolver.rb', line 48

def to_s
  @raw
end