module SvelteOnRails::GemUtils

def self.check_gem_version(gem_name)

def self.check_gem_version(gem_name)
  gl = File.read(Rails.root.join('Gemfile.lock'))
  regex = /(?<=#{Regexp.escape(gem_name)})[<>=\(~0-9\. \),]+/
  match = gl.match(regex)
  if match
    match.to_s.gsub('(','').gsub(')','').strip
  end
end

def self.install_gem(gem_name, group: nil)

def self.install_gem(gem_name, group: nil)
  v = check_gem_version(gem_name)
  if v
    puts "Gem #{gem_name} already installed, version: #{v} "
  else
    cmd = [
      "bundle add #{gem_name}",
      (group ? "--group=#{group}" : nil)
    ].compact.join(' ')
    stdout, stderr, status = Open3.capture3(cmd)
    if stderr.present?
      raise stderr
    else
      puts "Installed #{gem_name} version #{check_gem_version(gem_name)}"
    end
  end
end