class Grundler::PackageJsonWriter

Public Class Methods

new(path) click to toggle source
# File lib/grundler/package_json_writer.rb, line 5
def initialize(path)
  @path = path
end

Public Instance Methods

add(packages) click to toggle source
# File lib/grundler/package_json_writer.rb, line 9
def add(packages)
  write(existing_packages.merge(packages))
end
existing_packages() click to toggle source
# File lib/grundler/package_json_writer.rb, line 19
def existing_packages
  existing_content["dependencies"]
end
remove(packages) click to toggle source
# File lib/grundler/package_json_writer.rb, line 13
def remove(packages)
  write(
    existing_packages.delete_if { |k, _v| packages.include?(k) }
  )
end

Private Instance Methods

existing_content() click to toggle source
# File lib/grundler/package_json_writer.rb, line 34
def existing_content
  @existing_content ||= load_existing_content
end
load_existing_content() click to toggle source
# File lib/grundler/package_json_writer.rb, line 38
def load_existing_content
  JSON.parse(File.read(@path))
rescue StandardError
  { "dependencies" => {} }
end
write(packages) click to toggle source
# File lib/grundler/package_json_writer.rb, line 25
def write(packages)
  File.write(
    @path,
    JSON.pretty_generate(
      existing_content.merge({ "dependencies" => packages })
    )
  )
end