Module: Capistrano::Node
Instance Method Summary collapse
-
#choose_version(requirement, versions = []) ⇒ Object
Internal: Choose best matching version for given requirement.
-
#requirement(file) ⇒ Object
Internal: Parse requirement from package.json.
-
#version(string, prefix = '') ⇒ Object
Internal: Parse node version from string.
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 |