Class: SourceMonitor::Setup::Requirements::Version

Inherits:
Object
  • Object
show all
Defined in:
lib/source_monitor/setup/requirements.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(spec) ⇒ Version

Returns a new instance of Version.



9
10
11
# File 'lib/source_monitor/setup/requirements.rb', line 9

def initialize(spec)
  @requirement = Gem::Requirement.new(spec)
end

Instance Attribute Details

#requirementObject (readonly)

Returns the value of attribute requirement.



7
8
9
# File 'lib/source_monitor/setup/requirements.rb', line 7

def requirement
  @requirement
end

Instance Method Details

#expectedObject



13
14
15
# File 'lib/source_monitor/setup/requirements.rb', line 13

def expected
  requirement.to_s
end

#normalize(value) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/source_monitor/setup/requirements.rb', line 17

def normalize(value)
  return if value.blank?

  normalized = value.to_s.strip.sub(/^v/i, "")
  Gem::Version.new(normalized)
rescue ArgumentError
  nil
end

#satisfied?(value) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
31
# File 'lib/source_monitor/setup/requirements.rb', line 26

def satisfied?(value)
  version = normalize(value)
  return false unless version

  requirement.satisfied_by?(version)
end