class Anticuado::JavaScript::Npm
Public Instance Methods
format(outdated = nil)
click to toggle source
@param [String] outdated The result of command `npm outdated` @return [Array] Array include outdated data.
If target project have no outdated data, then return blank array such as `[]`
# File lib/anticuado/javascript/npm.rb, line 21 def format(outdated = nil) @outdated_libraries = outdated unless outdated.nil? array = @outdated_libraries.split(/\R/).map(&:strip) index = array.find_index { |line| line.scan(/\APackage\s+Current\s+Wanted\s+Latest\s+Location\z/) != [] } return [] if index.nil? @formatted_outdated_libraries = array[index + 1...array.size].map do |library| versions = library.split(/\s+/) # e.g. ["babel-brunch", "6.0.2", "6.0.6", "6.0.6"] { library_name: versions[0], current_version: versions[1], available_version: versions[2], latest_version: versions[3] } end end
outdated()
click to toggle source
@return [String] The result of command `npm outdated`.
# File lib/anticuado/javascript/npm.rb, line 5 def outdated return puts "have no npm command" if `which npm`.empty? if @project_dir Dir.chdir(@project_dir) do @outdated_libraries = run_outdated end else @outdated_libraries = run_outdated end @outdated_libraries end
Private Instance Methods
run_outdated()
click to toggle source
# File lib/anticuado/javascript/npm.rb, line 42 def run_outdated `npm install` `npm outdated` end