Module: Capistrano::Node

Extended by:
Node
Included in:
Node
Defined in:
lib/capistrano-node.rb

Instance Method Summary collapse

Instance Method Details

#choose_version(requirement, versions = []) ⇒ Object

Internal: Choose best matching version for given requirement

requirement - Gem::Requirement object versions - Array of Gem::Versions

Returns latest matching version



22
23
24
25
26
27
28
29
30
# File 'lib/capistrano-node.rb', line 22

def choose_version(requirement, versions = [])
  versions.sort.reduce(nil) do |used, candidate|
    if requirement.satisfied_by? candidate
      candidate
    else
      used
    end
  end
end

#requirement(file) ⇒ Object

Internal: Parse requirement from package.json

file - package.json file object

Returns Gem::Requirement



37
38
39
40
# File 'lib/capistrano-node.rb', line 37

def requirement(file)
  json = JSON.parse(File.open('package.json', 'r:utf-8').read)
  Gem::Requirement.create(json['engines']['node'])
end

#version(string, prefix = '') ⇒ Object

Internal: Parse node version from string

string - version string prefix - prefix used in node versions, e.g. ā€˜vā€™, (default: ā€)

Returns Gem::Version object



12
13
14
# File 'lib/capistrano-node.rb', line 12

def version(string, prefix = '')
  Gem::Version.create(string[prefix.length..-1])
end